Themes: Add a return value to theme functions calling `locate_template()`:

* `get_header()`
* `get_footer()`
* `get_sidebar()`
* `get_template_part()`

These functions now return false if the template file could not be found, to allow for easier debugging.

Props tferry, sphakka, johnbillion, pento, davidbinda, desrosj, birgire, garrett-eclipse, williampatton, davidbaumwald, SergeyBiryukov.
Fixes #40969.
Built from https://develop.svn.wordpress.org/trunk@48209


git-svn-id: http://core.svn.wordpress.org/trunk@47978 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Sergey Biryukov 2020-06-28 23:10:04 +00:00
parent 570b6e0866
commit cd0349b301
2 changed files with 21 additions and 5 deletions

View File

@ -16,8 +16,10 @@
* "special". * "special".
* *
* @since 1.5.0 * @since 1.5.0
* @since 5.5.0 A return value was added.
* *
* @param string $name The name of the specialised header. * @param string $name The name of the specialised header.
* @return void|false Void on success, false if the template does not exist.
*/ */
function get_header( $name = null ) { function get_header( $name = null ) {
/** /**
@ -38,7 +40,9 @@ function get_header( $name = null ) {
$templates[] = 'header.php'; $templates[] = 'header.php';
locate_template( $templates, true ); if ( ! locate_template( $templates, true ) ) {
return false;
}
} }
/** /**
@ -51,8 +55,10 @@ function get_header( $name = null ) {
* "special". * "special".
* *
* @since 1.5.0 * @since 1.5.0
* @since 5.5.0 A return value was added.
* *
* @param string $name The name of the specialised footer. * @param string $name The name of the specialised footer.
* @return void|false Void on success, false if the template does not exist.
*/ */
function get_footer( $name = null ) { function get_footer( $name = null ) {
/** /**
@ -73,7 +79,9 @@ function get_footer( $name = null ) {
$templates[] = 'footer.php'; $templates[] = 'footer.php';
locate_template( $templates, true ); if ( ! locate_template( $templates, true ) ) {
return false;
}
} }
/** /**
@ -86,8 +94,10 @@ function get_footer( $name = null ) {
* "special". * "special".
* *
* @since 1.5.0 * @since 1.5.0
* @since 5.5.0 A return value was added.
* *
* @param string $name The name of the specialised sidebar. * @param string $name The name of the specialised sidebar.
* @return void|false Void on success, false if the template does not exist.
*/ */
function get_sidebar( $name = null ) { function get_sidebar( $name = null ) {
/** /**
@ -108,7 +118,9 @@ function get_sidebar( $name = null ) {
$templates[] = 'sidebar.php'; $templates[] = 'sidebar.php';
locate_template( $templates, true ); if ( ! locate_template( $templates, true ) ) {
return false;
}
} }
/** /**
@ -128,9 +140,11 @@ function get_sidebar( $name = null ) {
* "special". * "special".
* *
* @since 3.0.0 * @since 3.0.0
* @since 5.5.0 A return value was added.
* *
* @param string $slug The slug name for the generic template. * @param string $slug The slug name for the generic template.
* @param string $name The name of the specialised template. * @param string $name The name of the specialised template.
* @return void|false Void on success, false if the template does not exist.
*/ */
function get_template_part( $slug, $name = null ) { function get_template_part( $slug, $name = null ) {
/** /**
@ -165,7 +179,9 @@ function get_template_part( $slug, $name = null ) {
*/ */
do_action( 'get_template_part', $slug, $name, $templates ); do_action( 'get_template_part', $slug, $name, $templates );
locate_template( $templates, true, false ); if ( ! locate_template( $templates, true, false ) ) {
return false;
}
} }
/** /**

View File

@ -13,7 +13,7 @@
* *
* @global string $wp_version * @global string $wp_version
*/ */
$wp_version = '5.5-alpha-48208'; $wp_version = '5.5-alpha-48209';
/** /**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.