Summery Summery
Retrieve path of page template in current or parent template.
Syntax Syntax
Description Description
The hierarchy for this template looks like:
- {Page Template}.php
- page-{page_name}.php
- page-{id}.php
- page.php
An example of this is:
- page-templates/full-width.php
- page-about.php
- page-4.php
- page.php
The template hierarchy and template path are filterable via the ‘$type_template_hierarchy’ and ‘$type_template’ dynamic hooks, where $type
is ‘page’.
Return Return
(string) Full path to page template file.
Source Source
File: wp-includes/template.php
function get_page_template() { $id = get_queried_object_id(); $template = get_page_template_slug(); $pagename = get_query_var( 'pagename' ); if ( ! $pagename && $id ) { // If a static page is set as the front page, $pagename will not be set. // Retrieve it from the queried object. $post = get_queried_object(); if ( $post ) { $pagename = $post->post_name; } } $templates = array(); if ( $template && 0 === validate_file( $template ) ) { $templates[] = $template; } if ( $pagename ) { $pagename_decoded = urldecode( $pagename ); if ( $pagename_decoded !== $pagename ) { $templates[] = "page-{$pagename_decoded}.php"; } $templates[] = "page-{$pagename}.php"; } if ( $id ) { $templates[] = "page-{$id}.php"; } $templates[] = 'page.php'; return get_query_template( 'page', $templates ); }
Advertisement
Changelog Changelog
Version | Description |
---|---|
4.7.0 | The decoded form of page-{page_name}.php was added to the top of the template hierarchy when the page name contains multibyte characters. |
1.5.0 | Introduced. |