The get_header WordPress PHP action fires before the header template file is loaded.
Usage
add_action('get_header', 'your_custom_function_name');
function your_custom_function_name($name) {
// your custom code here
}
Parameters
$name(string|null) – Name of the specific header file to use. Null for the default header.$args(array) – Additional arguments passed to the header template.
More information
See WordPress Developer Resources: get_header
Examples
Change Header Based on Page Template
Change the header file based on the current page’s template.
add_action('get_header', 'custom_header_based_on_page_template');
function custom_header_based_on_page_template($name) {
if (is_page_template('template-about.php')) {
$name = 'about';
}
return $name;
}
Add Custom CSS Class to Body
Add a custom CSS class to the body element for specific header files.
add_action('get_header', 'custom_css_class_for_header');
function custom_css_class_for_header($name) {
if ($name == 'custom-header') {
add_filter('body_class', 'add_custom_body_class');
}
}
function add_custom_body_class($classes) {
$classes[] = 'custom-header-class';
return $classes;
}
Load Custom JavaScript for Specific Header
Load custom JavaScript file when using a specific header.
add_action('get_header', 'load_custom_js_for_header');
function load_custom_js_for_header($name) {
if ($name == 'custom-header') {
wp_enqueue_script('custom-header-js', get_template_directory_uri() . '/js/custom-header.js', array(), '1.0.0', true);
}
}
Modify Site Title for a Specific Header
Change the site title when using a specific header.
add_action('get_header', 'modify_site_title_for_header');
function modify_site_title_for_header($name) {
if ($name == 'custom-header') {
add_filter('pre_get_document_title', 'change_site_title');
}
}
function change_site_title($title) {
return 'Custom Site Title';
}
Add Custom Header Template for Single Posts
Use a custom header for single posts.
add_action('get_header', 'custom_header_for_single_posts');
function custom_header_for_single_posts($name) {
if (is_single()) {
$name = 'single-post';
}
return $name;
}