What Are WordPress Hooks?
Hooks are the foundation of WordPress extensibility. Instead of editing core files, hooks let you inject code at specific points without breaking updates. Two types: actions and filters.
Actions: Doing Things
Actions run code at a specific point in WordPress execution. No return value — just execute.
add_action('wp_footer', 'my_custom_footer');
When WordPress reaches the footer, your function runs. Common action hooks: wp_head, wp_footer, init, admin_menu.
Filters: Modifying Data
Filters modify data before it’s used. Must return modified value.
add_filter('the_content', 'my_custom_content');
Before content displays, your function modifies it and returns it. Common filters: the_content, the_title, excerpt_length, wp_kses_post.
Hook Priority & Multiple Handlers
Run multiple functions on one hook. Control execution order with priority (lower runs first):
add_filter('the_content', 'function_a', 10);
add_filter('the_content', 'function_b', 5);
function_b runs first (priority 5 before 10).
Removing Hooks
Disable unwanted functionality without editing core:
remove_action('wp_head', 'wp_generator');
Creating Custom Hooks
Make your plugin extensible for other developers:
do_action('my_plugin_before_render');
$content = apply_filters('my_plugin_content', $content);
Practical Example
Add social share buttons to every post excerpt:
add_filter('the_excerpt', 'add_share_buttons', 20);
Your function receives excerpt, appends share buttons, returns modified excerpt. Done — no theme editing.
