Any advantage to using get_header() over include(‘header.php’)?

The basic theme – in fact every theme I’ve looked at – uses get_header() to include the header file, but I don’t see any reason for doing so.

What’s are the advantages of using get_header() instead of a simple include('file.php')?

Related posts

Leave a Reply

3 comments

  1. Using generic function means throwing out layer of WP API:

    • get_header hook would be gone;
    • compatibility with fetching different headers by name ("header-{$name}.php") would be gone;
    • usage of locate_template() would be gone, which likely would destroy compatibility with child themes.

    You can always look at source to see what exactly function does.

    WordPress uses own function not just-because. It is usually for concrete compatibility or functionality reasons.

  2. You can also use the get_header() function to get a different header file. Name the custom header file header-whatever.php, then use

    get_header('whatever');
    

    and WP will use the header-whatever.php file instead of header.php.

    Note that the syntax is wonky – you’d think you should put the filename in there instead, but no – you need the name after the hyphen only. I want that hour of my life back now 🙁

  3. The main reason is that you can hook into get_header, which means you can do header-y stuff in a child theme, or a separate function file without needing to edit the parent theme files.

    You don’t want to edit parent theme files because it makes upgrading them harder, as you then need to reapply your changes. If those changes are isolated in a child theme it makes upgrading MUCH easier