The wp_head WordPress PHP action hook allows you to add scripts, styles, or meta information to the <head> section of a WordPress theme.
Usage
add_action('wp_head', 'my_custom_head_code');
function my_custom_head_code() {
// your custom code here
}
Parameters
- No parameters.
More information
See WordPress Developer Resources: wp_head
Keep in mind that this hook is theme-dependent, but it is widely supported across various themes. Remember to use proper priority if you need to remove a default hook.
Examples
Adding a custom stylesheet
This example adds a custom stylesheet to the <head> section of the theme.
add_action('wp_head', 'add_custom_stylesheet');
function add_custom_stylesheet() {
echo '<link rel="stylesheet" href="' . get_stylesheet_directory_uri() . '/custom.css" />';
}
Adding custom meta tags
This example adds custom meta tags for SEO purposes.
add_action('wp_head', 'add_custom_meta_tags');
function add_custom_meta_tags() {
echo '<meta name="description" content="A custom description for my site">';
echo '<meta name="keywords" content="custom,keywords,for,my,site">';
}
Adding a favicon
This example adds a favicon to the <head> section of the theme.
add_action('wp_head', 'add_favicon');
function add_favicon() {
echo '<link rel="shortcut icon" href="' . get_stylesheet_directory_uri() . '/favicon.ico" />';
}
Adding a custom JavaScript file
This example adds a custom JavaScript file to the <head> section of the theme.
add_action('wp_head', 'add_custom_js');
function add_custom_js() {
echo '<script src="' . get_stylesheet_directory_uri() . '/custom.js"></script>';
}
Adding Google Analytics
This example adds Google Analytics tracking code to the <head> section of the theme.
add_action('wp_head', 'add_google_analytics');
function add_google_analytics() {
echo "<script async src='https://www.googletagmanager.com/gtag/js?id=UA-XXXXXXXXX-X'></script>";
echo "<script>window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-XXXXXXXXX-X');
</script>";
}