WP_Theme: Return false from the display() method when get() fails.
Fixes a potential warning on the themes page when the active theme is deleted. fixes #26873. git-svn-id: https://develop.svn.wordpress.org/trunk@27745 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
ed0b146180
commit
79ff680b93
@ -535,7 +535,7 @@ final class WP_Theme implements ArrayAccess {
|
||||
* @since 3.4.0
|
||||
*
|
||||
* @param string $header Theme header. Name, Description, Author, Version, ThemeURI, AuthorURI, Status, Tags.
|
||||
* @return string String on success, false on failure.
|
||||
* @return string|bool String on success, false on failure.
|
||||
*/
|
||||
public function get( $header ) {
|
||||
if ( ! isset( $this->headers[ $header ] ) )
|
||||
@ -571,10 +571,13 @@ final class WP_Theme implements ArrayAccess {
|
||||
* @param string $header Theme header. Name, Description, Author, Version, ThemeURI, AuthorURI, Status, Tags.
|
||||
* @param bool $markup Optional. Whether to mark up the header. Defaults to true.
|
||||
* @param bool $translate Optional. Whether to translate the header. Defaults to true.
|
||||
* @return string Processed header, false on failure.
|
||||
* @return string|bool Processed header, false on failure.
|
||||
*/
|
||||
public function display( $header, $markup = true, $translate = true ) {
|
||||
$value = $this->get( $header );
|
||||
if ( false === $value ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( $translate && ( empty( $value ) || ! $this->load_textdomain() ) )
|
||||
$translate = false;
|
||||
|
@ -128,4 +128,15 @@ class Tests_Theme_WPTheme extends WP_UnitTestCase {
|
||||
function filter_theme_with_spaces() {
|
||||
return 'subdir/theme with spaces';
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 26873
|
||||
*/
|
||||
function test_display_method_on_get_method_failure() {
|
||||
$theme = new WP_Theme( 'nonexistent', $this->theme_root );
|
||||
$this->assertEquals( 'nonexistent', $theme->get( 'Name' ) );
|
||||
$this->assertFalse( $theme->get( 'AuthorURI' ) );
|
||||
$this->assertFalse( $theme->get( 'Tags' ) );
|
||||
$this->assertFalse( $theme->display( 'Tags' ) );
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user