X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/53f4633144ed68c8b8fb5861f992b5489894a940..607b7e02d77e7326161e8ec15639052d2040f745:/wp-includes/template.php diff --git a/wp-includes/template.php b/wp-includes/template.php index 3e4e9a40..380bb47b 100644 --- a/wp-includes/template.php +++ b/wp-includes/template.php @@ -11,7 +11,7 @@ * * Used to quickly retrieve the path of a template without including the file * extension. It will also check the parent theme, if the file exists, with - * the use of {@link locate_template()}. Allows for more generic template location + * the use of locate_template(). Allows for more generic template location * without the use of the other get_*_template() functions. * * @since 1.5.0 @@ -29,12 +29,15 @@ function get_query_template( $type, $templates = array() ) { $template = locate_template( $templates ); /** - * Filter the path of the queried template by type. + * Filters the path of the queried template by type. * * The dynamic portion of the hook name, `$type`, refers to the filename -- minus the file * extension and any non-alphanumeric characters delimiting words -- of the file to load. * This hook also applies to various types of files loaded as part of the Template Hierarchy. * + * Possible values for `$type` include: 'index', '404', 'archive', 'author', 'category', 'tag', 'taxonomy', 'date', + * 'home', 'front_page', 'page', 'paged', 'search', 'single', 'singular', and 'attachment'. + * * @since 1.5.0 * * @param string $template Path to the template. See locate_template(). @@ -380,6 +383,7 @@ function get_search_template() { * e.g. 'single_template'. * * @since 1.5.0 + * @since 4.4.0 `single-{post_type}-{post_name}.php` was added to the top of the template hierarchy. * * @see get_query_template() * @@ -390,13 +394,48 @@ function get_single_template() { $templates = array(); - if ( ! empty( $object->post_type ) ) + if ( ! empty( $object->post_type ) ) { + $templates[] = "single-{$object->post_type}-{$object->post_name}.php"; $templates[] = "single-{$object->post_type}.php"; + } + $templates[] = "single.php"; return get_query_template( 'single', $templates ); } +/** + * Retrieves an embed template path in the current or parent template. + * + * By default the WordPress-template is returned. + * + * The template path is filterable via the dynamic {@see '$type_template'} hook, + * e.g. 'embed_template'. + * + * @since 4.5.0 + * + * @see get_query_template() + * + * @return string Full path to embed template file. + */ +function get_embed_template() { + $object = get_queried_object(); + + $templates = array(); + + if ( ! empty( $object->post_type ) ) { + $post_format = get_post_format( $object ); + if ( $post_format ) { + $templates[] = "embed-{$object->post_type}-{$post_format}.php"; + } + $templates[] = "embed-{$object->post_type}.php"; + } + + $templates[] = "embed.php"; + + return get_query_template( 'embed', $templates ); +} + /** * Retrieves the path of the singular template in current or parent template. * @@ -458,36 +497,11 @@ function get_attachment_template() { return get_query_template( 'attachment', $templates ); } -/** - * Retrieve path of comment popup template in current or parent template. - * - * Checks for comment popup template in current template, if it exists or in the - * parent template. - * - * The template path is filterable via the dynamic {@see '$type_template'} hook, - * e.g. 'commentspopup_template'. - * - * @since 1.5.0 - * - * @see get_query_template() - * - * @return string Full path to comments popup template file. - */ -function get_comments_popup_template() { - $template = get_query_template( 'comments_popup', array( 'comments-popup.php' ) ); - - // Backward compat code will be removed in a future release. - if ('' == $template) - $template = ABSPATH . WPINC . '/theme-compat/comments-popup.php'; - - return $template; -} - /** * Retrieve the name of the highest priority template file that exists. * - * Searches in the STYLESHEETPATH before TEMPLATEPATH so that themes which - * inherit from a parent theme can just overload one file. + * Searches in the STYLESHEETPATH before TEMPLATEPATH and wp-includes/theme-compat + * so that themes which inherit from a parent theme can just overload one file. * * @since 2.7.0 * @@ -507,6 +521,9 @@ function locate_template($template_names, $load = false, $require_once = true ) } elseif ( file_exists(TEMPLATEPATH . '/' . $template_name) ) { $located = TEMPLATEPATH . '/' . $template_name; break; + } elseif ( file_exists( ABSPATH . WPINC . '/theme-compat/' . $template_name ) ) { + $located = ABSPATH . WPINC . '/theme-compat/' . $template_name; + break; } } @@ -534,7 +551,7 @@ function locate_template($template_names, $load = false, $require_once = true ) * @global string $wp_version * @global WP $wp * @global int $id - * @global object $comment + * @global WP_Comment $comment * @global int $user_ID * * @param string $_template_file Path to template file.