WordPress.org

Make WordPress Core

Ticket #46925: 46925.diff

File 46925.diff, 3.2 KB (added by garrett-eclipse, 6 months ago)

Patch to introduce 'Parent Theme' accordion and rename 'Other Themes' to 'Inactive Themes'

  • src/wp-admin/includes/class-wp-debug-data.php

     
    124124                        'fields' => array(),
    125125                );
    126126
    127                 $info['wp-themes'] = array(
    128                         'label'      => __( 'Other Themes' ),
     127                $info['wp-parent-theme'] = array(
     128                        'label'  => __( 'Parent Theme' ),
     129                        'fields' => array(),
     130                );
     131
     132                $info['wp-themes-inactive'] = array(
     133                        'label'      => __( 'Inactive Themes' ),
    129134                        'show_count' => true,
    130135                        'fields'     => array(),
    131136                );
     
    898903                        ),
    899904                );
    900905
     906                $parent_theme  = $active_theme->parent();
     907
     908                if ( $parent_theme ) {
     909                        // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
     910                        $parent_theme_version       = $parent_theme->Version;
     911                        $parent_theme_version_debug = $parent_theme_version;
     912
     913                        if ( array_key_exists( $parent_theme->stylesheet, $parent_theme_updates ) ) {
     914                                $parent_theme_update_new_version = $parent_theme_updates[ $parent_theme->stylesheet ]->update['new_version'];
     915
     916                                // translators: %s: Latest theme version number.
     917                                $parent_theme_version       .= ' ' . sprintf( __( '(Latest version: %s)' ), $parent_theme_update_new_version );
     918                                $parent_theme_version_debug .= sprintf( ' (latest version: %s)', $parent_theme_update_new_version );
     919                        }
     920
     921                        $parent_theme_author_uri = $parent_theme->offsetGet( 'Author URI' );
     922
     923                        $info['wp-parent-theme']['fields'] = array(
     924                                'name'           => array(
     925                                        'label' => __( 'Name' ),
     926                                        // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
     927                                        'value' => $parent_theme->Name,
     928                                ),
     929                                'version'        => array(
     930                                        'label' => __( 'Version' ),
     931                                        'value' => $parent_theme_version,
     932                                        'debug' => $parent_theme_version_debug,
     933                                ),
     934                                'author'         => array(
     935                                        'label' => __( 'Author' ),
     936                                        // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
     937                                        'value' => wp_kses( $parent_theme->Author, array() ),
     938                                ),
     939                                'author_website' => array(
     940                                        'label' => __( 'Author website' ),
     941                                        'value' => ( $parent_theme_author_uri ? $parent_theme_author_uri : __( 'Undefined' ) ),
     942                                        'debug' => ( $parent_theme_author_uri ? $parent_theme_author_uri : '(undefined)' ),
     943                                ),
     944                        );
     945                }
     946
    901947                // Populate a list of all themes available in the install.
    902948                $all_themes = wp_get_themes();
    903949
    904950                foreach ( $all_themes as $theme_slug => $theme ) {
    905951                        // Ignore the currently active theme from the list of all themes.
    906                         if ( $active_theme->stylesheet === $theme_slug ) {
     952                        if ( $active_theme->stylesheet === $theme_slug || $parent_theme->stylesheet === $theme_slug ) {
    907953                                continue;
    908954                        }
    909955                        // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
     
    942988                        }
    943989
    944990                        // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
    945                         $info['wp-themes']['fields'][ sanitize_text_field( $theme->Name ) ] = array(
     991                        $info['wp-themes-inactive']['fields'][ sanitize_text_field( $theme->Name ) ] = array(
    946992                                'label' => sprintf(
    947993                                        // translators: 1: Theme name. 2: Theme slug.
    948994                                        __( '%1$s (%2$s)' ),