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')
?
Using generic function means throwing out layer of WP API:
get_header
hook would be gone;"header-{$name}.php"
) would be gone;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.
get_header
and this explains why I have been getting some strange behavior.
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 :(
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
include('some-file.php');
- there's no need for parenthesis, it's a language construct!include 'some-file.php';
does the job just fine, plus IMO looks neater too ;)