Wordpress - What does is_page_template() compare against?
Your condition should be written like this:
if (is_page_template('path/file.php')) {
// Do stuff
}
I believe the confusion is a result of two things:
- The docs refer to "name" ambiguously. Specifying "file name" would make the documentation much more clear.
- The code behind
is_page_template()
shows theget_page_template_slug()
function at its core. This function actually returns a file name, not the template slug. https://codex.wordpress.org/Function_Reference/get_page_template_slug
When specifying an argument for the is_page_template()
function (as in the example above), the file path is relative to the theme root.
This function will not work inside the loop.
EDIT: an important issue to note here as well. The is_page_template()
function will return empty/false if the page is using the default template from the hierarchy. If a custom template is not assigned, you must use another method, such as basename(get_page_template())
.
I think the best thing to say is, it checks on the FILE name and in your case it would be page-homepage.php. so:
if (is_page_template('page-homepage.php')) {
...
Other things to think of is if the template file is actually stored within another folder inside the theme. read more
One more thing, the Template Name: Homepage
is genrally whats used to identify the template when creating a page or post.