Action hooks let you add your own code at specific points in WordPress without changing core files. They help you customize how WordPress works safely.
Action hooks in Wordpress
add_action('hook_name', 'your_function_name', priority, accepted_args); function your_function_name() { // Your code here }
hook_name is the name of the action point in WordPress.
priority controls the order your function runs (default is 10).
accepted_args is the number of arguments your function accepts (default is 1).
add_action('wp_footer', 'add_footer_text'); function add_footer_text() { echo '<p>Thank you for visiting!</p>'; }
add_action('publish_post', 'notify_admin_on_publish', 20); function notify_admin_on_publish($post_ID) { // Code to send email to admin }
add_action('user_register', 'welcome_new_user', 10, 1); function welcome_new_user($user_id) { // Send welcome email to new user }
This code adds a centered gray message at the bottom of every page using the wp_footer action hook.
<?php // Add a message to the footer add_action('wp_footer', 'show_footer_message'); function show_footer_message() { echo '<p style="text-align:center; color: gray;">Powered by WordPress Action Hooks</p>'; } ?>
Action hooks do not change content directly; they let you run code at certain points.
Always use unique function names to avoid conflicts.
You can remove an action with remove_action() if needed.
Action hooks let you add custom code at specific points in WordPress.
Use add_action() with a hook name and your function.
They help customize WordPress safely without editing core files.
Practice
Solution
Step 1: Understand what action hooks do
Action hooks allow you to insert your own code at certain points in WordPress execution.Step 2: Recognize safe customization
This lets you customize WordPress without editing its core files, which is safer and update-proof.Final Answer:
To let you add custom code at specific points without changing core files -> Option BQuick Check:
Action hooks = safe custom code insertion [OK]
- Thinking action hooks create database tables
- Confusing action hooks with styling tools
- Believing action hooks replace themes
Solution
Step 1: Recall add_action syntax
The first argument is the hook name as a string, the second is the function name as a string.Step 2: Check each option
add_action('init', 'my_function'); matches the correct syntax: add_action('hook_name', 'function_name'); others mix argument order or call the function immediately.Final Answer:
add_action('init', 'my_function'); -> Option CQuick Check:
Hook name first, function name second as strings [OK]
- Swapping hook and function arguments
- Passing function call instead of function name
- Not using quotes around function name
function greet() {
echo 'Hello!';
}
add_action('wp_footer', 'greet');
Assuming the theme calls do_action('wp_footer'); in the footer.Solution
Step 1: Understand add_action and do_action
add_action attaches 'greet' function to 'wp_footer' hook. When do_action('wp_footer') runs, it calls 'greet'.Step 2: Analyze the greet function output
The greet function echoes 'Hello!', so this text will appear where the footer hook runs.Final Answer:
The text 'Hello!' will appear in the footer -> Option AQuick Check:
do_action triggers greet, which echoes 'Hello!' [OK]
- Thinking nothing happens without explicit call
- Confusing function name string with output
- Expecting errors from correct hook usage
function add_custom_text() {
echo 'Custom Text';
}
add_action('init', add_custom_text());Solution
Step 1: Check how add_action expects arguments
add_action expects the second argument as a function name string, not a function call.Step 2: Identify the mistake in the code
Using add_custom_text() calls the function immediately and passes its result, which is incorrect.Final Answer:
The function add_custom_text is called immediately instead of being hooked -> Option DQuick Check:
Pass function name as string, not call it [OK]
- Calling function instead of passing name
- Assuming hook name is wrong
- Missing semicolon confusion
Solution
Step 1: Identify the correct hook for footer output
'wp_footer' runs after footer content loads, so it's the right hook to add footer messages.Step 2: Apply condition to show message only on single posts
Using is_single() inside the hooked function ensures the message appears only on single post pages.Final Answer:
add_action('wp_footer', function() { if (is_single()) { echo 'Thanks for reading!'; } }); -> Option AQuick Check:
Footer hook + condition inside function = correct usage [OK]
- Using init or wp_head hooks for footer content
- Not adding condition for single posts
- Echoing outside hooked function
Ready to prove it?
Pass the test and this pattern moves unknown
