The do_favicon WordPress PHP action is fired when the template loader determines a favicon.ico request.
Usage
add_action('do_favicon', 'your_custom_function'); function your_custom_function() { // your custom code here }
Parameters
- None
More information
See WordPress Developer Resources: do_favicon
Examples
Add a custom favicon to your site
This example adds a custom favicon to your WordPress site by using the do_favicon action.
add_action('do_favicon', 'my_custom_favicon'); function my_custom_favicon() { $favicon_url = get_stylesheet_directory_uri() . '/images/favicon.ico'; echo '<link rel="shortcut icon" href="' . esc_url($favicon_url) . '" />'; }
Load different favicons based on user role
This example loads different favicons for different user roles using the do_favicon action.
add_action('do_favicon', 'load_favicon_based_on_user_role'); function load_favicon_based_on_user_role() { $user = wp_get_current_user(); $favicon_url = ''; if (in_array('administrator', (array) $user->roles)) { $favicon_url = get_stylesheet_directory_uri() . '/images/favicon_admin.ico'; } else { $favicon_url = get_stylesheet_directory_uri() . '/images/favicon_user.ico'; } echo '<link rel="shortcut icon" href="' . esc_url($favicon_url) . '" />'; }
Modify the favicon for a specific custom post type
This example shows how to change the favicon for a specific custom post type using the do_favicon action.
add_action('do_favicon', 'change_favicon_for_custom_post_type'); function change_favicon_for_custom_post_type() { if (is_singular('your_custom_post_type')) { $favicon_url = get_stylesheet_directory_uri() . '/images/favicon_custom_post_type.ico'; echo '<link rel="shortcut icon" href="' . esc_url($favicon_url) . '" />'; } }
Add a dynamic favicon based on the site’s primary color
This example demonstrates how to create a dynamic favicon based on your site’s primary color using the do_favicon action.
add_action('do_favicon', 'dynamic_favicon_based_on_primary_color'); function dynamic_favicon_based_on_primary_color() { $primary_color = get_theme_mod('primary_color', '#000000'); $favicon_url = 'https://fakeimg.pl/16x16/' . ltrim($primary_color, '#') . '/?text=%20'; echo '<link rel="shortcut icon" href="' . esc_url($favicon_url) . '" />'; }
Add a favicon only on the homepage
This example adds a favicon to your WordPress site only on the homepage using the do_favicon action.
add_action('do_favicon', 'add_favicon_to_homepage'); function add_favicon_to_homepage() { if (is_front_page()) { $favicon_url = get_stylesheet_directory_uri() . '/images/favicon_home.ico'; echo '<link rel="shortcut icon" href="' . esc_url($favicon_url) . '" />'; } }