Site Health: Show parent theme in its own accordion on Site Health Info screen; rename "Other Themes" to "Inactive Themes".

Props garrett-eclipse, mukesh27, Clorith, xkon, msaggiorato.
Fixes #46925.
Built from https://develop.svn.wordpress.org/trunk@45680


git-svn-id: http://core.svn.wordpress.org/trunk@45491 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Sergey Biryukov 2019-07-26 03:49:55 +00:00
parent dae07c8216
commit e925997562
2 changed files with 94 additions and 9 deletions

View File

@ -128,8 +128,13 @@ class WP_Debug_Data {
'fields' => array(),
);
$info['wp-themes'] = array(
'label' => __( 'Other Themes' ),
$info['wp-parent-theme'] = array(
'label' => __( 'Parent Theme' ),
'fields' => array(),
);
$info['wp-themes-inactive'] = array(
'label' => __( 'Inactive Themes' ),
'show_count' => true,
'fields' => array(),
);
@ -873,11 +878,34 @@ class WP_Debug_Data {
$active_theme_author_uri = $active_theme->offsetGet( 'Author URI' );
if ( $active_theme->parent_theme ) {
$active_theme_parent_theme = sprintf(
// translators: 1: Theme name. 2: Theme slug.
__( '%1$s (%2$s)' ),
$active_theme->parent_theme,
$active_theme->template
);
$active_theme_parent_theme_debug = sprintf(
'%s (%s)',
$active_theme->parent_theme,
$active_theme->template
);
} else {
$active_theme_parent_theme = __( 'None' );
$active_theme_parent_theme_debug = 'none';
}
$info['wp-active-theme']['fields'] = array(
'name' => array(
'label' => __( 'Name' ),
// phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
'value' => $active_theme->Name,
'value' => sprintf(
// translators: 1: Theme name. 2: Theme slug.
__( '%1$s (%2$s)' ),
// phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
$active_theme->Name,
$active_theme->stylesheet
),
),
'version' => array(
'label' => __( 'Version' ),
@ -896,8 +924,8 @@ class WP_Debug_Data {
),
'parent_theme' => array(
'label' => __( 'Parent theme' ),
'value' => ( $active_theme->parent_theme ? $active_theme->parent_theme : __( 'None' ) ),
'debug' => ( $active_theme->parent_theme ? $active_theme->parent_theme : 'none' ),
'value' => $active_theme_parent_theme,
'debug' => $active_theme_parent_theme_debug,
),
'theme_features' => array(
'label' => __( 'Theme features' ),
@ -905,18 +933,75 @@ class WP_Debug_Data {
),
'theme_path' => array(
'label' => __( 'Theme directory location' ),
'value' => get_template_directory(),
'value' => get_stylesheet_directory(),
),
);
$parent_theme = $active_theme->parent();
if ( $parent_theme ) {
// phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
$parent_theme_version = $parent_theme->Version;
$parent_theme_version_debug = $parent_theme_version;
if ( array_key_exists( $parent_theme->stylesheet, $theme_updates ) ) {
$parent_theme_update_new_version = $theme_updates[ $parent_theme->stylesheet ]->update['new_version'];
// translators: %s: Latest theme version number.
$parent_theme_version .= ' ' . sprintf( __( '(Latest version: %s)' ), $parent_theme_update_new_version );
$parent_theme_version_debug .= sprintf( ' (latest version: %s)', $parent_theme_update_new_version );
}
$parent_theme_author_uri = $parent_theme->offsetGet( 'Author URI' );
$info['wp-parent-theme']['fields'] = array(
'name' => array(
'label' => __( 'Name' ),
// phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
'value' => sprintf(
// translators: 1: Theme name. 2: Theme slug.
__( '%1$s (%2$s)' ),
// phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
$parent_theme->Name,
$parent_theme->stylesheet
),
),
'version' => array(
'label' => __( 'Version' ),
'value' => $parent_theme_version,
'debug' => $parent_theme_version_debug,
),
'author' => array(
'label' => __( 'Author' ),
// phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
'value' => wp_kses( $parent_theme->Author, array() ),
),
'author_website' => array(
'label' => __( 'Author website' ),
'value' => ( $parent_theme_author_uri ? $parent_theme_author_uri : __( 'Undefined' ) ),
'debug' => ( $parent_theme_author_uri ? $parent_theme_author_uri : '(undefined)' ),
),
'theme_path' => array(
'label' => __( 'Theme directory location' ),
'value' => get_template_directory(),
),
);
}
// Populate a list of all themes available in the install.
$all_themes = wp_get_themes();
foreach ( $all_themes as $theme_slug => $theme ) {
// Ignore the currently active theme from the list of all themes.
// Exclude the currently active theme from the list of all themes.
if ( $active_theme->stylesheet === $theme_slug ) {
continue;
}
// Exclude the currently active parent theme from the list of all themes.
if ( ! empty( $parent_theme ) && $parent_theme->stylesheet === $theme_slug ) {
continue;
}
// phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
$theme_version = $theme->Version;
// phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
@ -953,7 +1038,7 @@ class WP_Debug_Data {
}
// phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
$info['wp-themes']['fields'][ sanitize_text_field( $theme->Name ) ] = array(
$info['wp-themes-inactive']['fields'][ sanitize_text_field( $theme->Name ) ] = array(
'label' => sprintf(
// translators: 1: Theme name. 2: Theme slug.
__( '%1$s (%2$s)' ),

View File

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