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.

git-svn-id: https://develop.svn.wordpress.org/trunk@48209 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Sergey Biryukov
2020-06-28 23:08:57 +00:00
parent 43823df70a
commit 9f053c58fe
5 changed files with 65 additions and 10 deletions

View File

@@ -16,8 +16,10 @@
* "special".
*
* @since 1.5.0
* @since 5.5.0 A return value was added.
*
* @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 ) {
/**
@@ -38,7 +40,9 @@ function get_header( $name = null ) {
$templates[] = 'header.php';
locate_template( $templates, true );
if ( ! locate_template( $templates, true ) ) {
return false;
}
}
/**
@@ -51,8 +55,10 @@ function get_header( $name = null ) {
* "special".
*
* @since 1.5.0
* @since 5.5.0 A return value was added.
*
* @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 ) {
/**
@@ -73,7 +79,9 @@ function get_footer( $name = null ) {
$templates[] = 'footer.php';
locate_template( $templates, true );
if ( ! locate_template( $templates, true ) ) {
return false;
}
}
/**
@@ -86,8 +94,10 @@ function get_footer( $name = null ) {
* "special".
*
* @since 1.5.0
* @since 5.5.0 A return value was added.
*
* @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 ) {
/**
@@ -108,7 +118,9 @@ function get_sidebar( $name = null ) {
$templates[] = 'sidebar.php';
locate_template( $templates, true );
if ( ! locate_template( $templates, true ) ) {
return false;
}
}
/**
@@ -128,9 +140,11 @@ function get_sidebar( $name = null ) {
* "special".
*
* @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 $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 ) {
/**
@@ -165,7 +179,9 @@ function get_template_part( $slug, $name = null ) {
*/
do_action( 'get_template_part', $slug, $name, $templates );
locate_template( $templates, true, false );
if ( ! locate_template( $templates, true, false ) ) {
return false;
}
}
/**