get_header( string $name = null, array $args = array() ): void|false

Loads header template.

Description

Includes the header template for a theme or if a name is specified then a specialized header will be included.

For the parameter, if the file is called "header-special.php" then specify "special".

Parameters

$namestringoptional
The name of the specialized header.

Default:null

$argsarrayoptional
Additional arguments passed to the header template.

Default:array()

Return

void|false Void on success, false if the template does not exist.

More Information

If the theme contains no header.php file then the header from the default theme wp-includes/theme-compat/header.php will be included.

Source

function get_header( $name = null, $args = array() ) {
	/**
	 * Fires before the header template file is loaded.
	 *
	 * @since 2.1.0
	 * @since 2.8.0 The `$name` parameter was added.
	 * @since 5.5.0 The `$args` parameter was added.
	 *
	 * @param string|null $name Name of the specific header file to use. Null for the default header.
	 * @param array       $args Additional arguments passed to the header template.
	 */
	do_action( 'get_header', $name, $args );

	$templates = array();
	$name      = (string) $name;
	if ( '' !== $name ) {
		$templates[] = "header-{$name}.php";
	}

	$templates[] = 'header.php';

	if ( ! locate_template( $templates, true, true, $args ) ) {
		return false;
	}
}

Hooks

do_action( ‘get_header’, string|null $name, array $args )

Fires before the header template file is loaded.

Changelog

VersionDescription
5.5.0The $args parameter was added.
1.5.0Introduced.

User Contributed Notes

  1. Skip to note 7 content

    As second parameter in get_header() we can pass an array

    <?php
    // in index.php or where you want to include header
    get_header( '', array( 'name' => 'Ruhul Amin', 'age' => 23 ) ); 
    ?>

    We will be able to use this in header.php

    <h2>This is a Header</h2>
    <p>Hey, <?php echo $args['name']; ?>, You are <?php echo $args['age']; ?> years old</p>
  2. Skip to note 9 content

    Pass array as second parameter in get_header()

    <?php
    // that code put in page.php, single.php etc
    // I have put that code in index.php file
    get_header( '', array( 'menu' => wp_nav_menu( array(
    	'menu' => 'wpdocs_primary_menu',
    	'menu_class' => 'wpdocs_header_menu',
    	'menu_id' => 'wpdocs_nav_menu',
    ) ) ) );
    ?>

    Put a code on header.php

    <?php echo $args['menu']; ?>

    Output:
    Show menu item that setup in the WordPress dashboard

    Note:
    In the above code class wpdocs_header_menu assign to the menu and also id wpdocs_nav_menu assign to the menu. So you can style the menu according to the requirements.

  3. Skip to note 10 content

    Simple 404 page
    The following code is a simple example of a template for an “HTTP 404: Not Found” error (which you could include in your theme as 404.php).

    <?php get_header(); ?>
    
    <h2><?php esc_html_e( 'Error 404 - Not Found', 'textdomain' ); ?></h2>
    
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>

You must log in before being able to contribute a note or feedback.