get_single_template() WordPress Function
The get_single_template() function allows you to load a specific template file for a single post. This is useful if you want to create a custom template for a specific post, or if you want to override the default template for a post type.
get_single_template() #
Retrieve path of single template in current or parent template. Applies to single Posts, single Attachments, and single custom post types.
Description
The hierarchy for this template looks like:
- {Post Type Template}.php
- single-{post_type}-{post_name}.php
- single-{post_type}.php
- single.php
An example of this is:
- templates/full-width.php
- single-post-hello-world.php
- single-post.php
- single.php
The template hierarchy and template path are filterable via the ‘$type_template_hierarchy’ and ‘$type_template’ dynamic hooks, where $type is ‘single’.
See also
Return
(string) Full path to single template file.
Source
File: wp-includes/template.php
function get_single_template() {
$object = get_queried_object();
$templates = array();
if ( ! empty( $object->post_type ) ) {
$template = get_page_template_slug( $object );
if ( $template && 0 === validate_file( $template ) ) {
$templates[] = $template;
}
$name_decoded = urldecode( $object->post_name );
if ( $name_decoded !== $object->post_name ) {
$templates[] = "single-{$object->post_type}-{$name_decoded}.php";
}
$templates[] = "single-{$object->post_type}-{$object->post_name}.php";
$templates[] = "single-{$object->post_type}.php";
}
$templates[] = 'single.php';
return get_query_template( 'single', $templates );
}
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
| Version | Description |
|---|---|
| 4.7.0 | {Post Type Template}.php was added to the top of the template hierarchy. |
| 4.4.0 | single-{post_type}-{post_name}.php was added to the top of the template hierarchy. |
| 1.5.0 | Introduced. |