Make WordPress Core


Ignore:
Timestamp:
02/28/2012 09:24:44 PM (10 years ago)
Author:
nacin
Message:

Introduce WP_Theme, wp_get_themes(), and wp_get_theme() to replace get_themes(), get_theme(), get_theme_data(), current_theme_info(), and others.

  • Getters and Helpers: Introduces a series of methods to allow for easy generation of headers for display, and other theme metadata, including page templates.
  • Screenshots: Handles support for multiple screenshots. (see # Additional screenshots must be PNG and start with screenshot-2.png, and be sequential to be counted. see #19816.
  • Error Handling: Broken themes have a WP_Error object attached to them.
  • Caching: Introduces a wp_cache_themes_persistently filter (also in [20020]) to enable persistent caching of all filesystem and sanitization operations normally handled by WP_Theme (and formerly get_file_data() and get_themes()). Themes are cached individually and across five different cache keys for different data pieces.
  • Compatibility: A WP_Theme object is backwards compatible with a theme's array formerly returned by get_themes() and get_theme(), and an stdClass object formerly returned by current_theme_info().
  • i18n/L10n: Theme headers are now localizable with proper Text Domain and Domain Path headers, like plugins. (Language packs may remove the requirement for headers.) For page templates, see #6007 (not fixed yet, but will be easy now). For headers, fixes #15858.
  • PHP and CSS files: New methods that fetch a list of theme files (for the theme editor) only on demand, rather than only loading them into memory. fixes #11214.

Functions deprecated:

  • get_themes(), get_allowed_themes() and get_broken_themes() -- use wp_get_themes()
  • get_theme() and current_theme_info() -- use wp_get_theme()
  • get_site_allowed_themes() -- use WP_Theme::get_allowed_on_network()
  • wpmu_get_blog_allowedthemes() -- use WP_theme::get_allowed_on_site()

see also [20016], [20018], [20019], [20020], [20021], [20022], [20025], [20026], [20027]. also fixes #19244.

see #20103.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/includes/dashboard.php

    r19712 r20029  
    384384
    385385    echo "\n\t".'<div class="versions">';
    386     $ct = current_theme_info();
     386    $theme = wp_get_theme();
    387387
    388388    echo "\n\t<p>";
    389389
    390     if ( empty( $ct->stylesheet_dir ) ) {
     390    if ( $theme->errors() ) {
    391391        if ( ! is_multisite() || is_super_admin() )
    392392            echo '<span class="error-message">' . __('ERROR: The themes directory is either empty or doesn&#8217;t exist. Please check your installation.') . '</span>';
     
    402402        $num = number_format_i18n( $num_widgets );
    403403
    404         $switch_themes = $ct->title;
     404        $switch_themes = $theme->display('Name');
    405405        if ( current_user_can( 'switch_themes') )
    406406            $switch_themes = '<a href="themes.php">' . $switch_themes . '</a>';
     
    412412    } else {
    413413        if ( current_user_can( 'switch_themes' ) )
    414             printf( __('Theme <span class="b"><a href="themes.php">%1$s</a></span>'), $ct->title );
     414            printf( __('Theme <span class="b"><a href="themes.php">%1$s</a></span>'), $theme->display('Name') );
    415415        else
    416             printf( __('Theme <span class="b">%1$s</span>'), $ct->title );
     416            printf( __('Theme <span class="b">%1$s</span>'), $theme->display('Name') );
    417417    }
    418418    echo '</p>';
     
    13141314        <h4><span class="icon16 icon-appearance"></span> <?php _e( 'Customize Your Site' ); ?></h4>
    13151315        <?php
    1316         $ct = current_theme_info();
    1317         if ( empty ( $ct->stylesheet_dir ) ) :
     1316        $theme = wp_get_theme();
     1317        if ( $theme->errors() ) :
    13181318            echo '<p>';
    13191319            printf( __( '<a href="%s">Install a theme</a> to get started customizing your site.' ), esc_url( admin_url( 'themes.php' ) ) );
     
    13211321        else:
    13221322            $customize_links = array();
    1323             if ( 'twentyeleven' == $ct->stylesheet )
     1323            if ( 'twentyeleven' == $theme->get_stylesheet() )
    13241324                $customize_links[] = sprintf( __( '<a href="%s">Choose light or dark</a>' ), esc_url( admin_url( 'themes.php?page=theme_options' ) ) );
    13251325
     
    13351335            if ( ! empty( $customize_links ) ) {
    13361336                echo '<p>';
    1337                 printf( __( 'Use the current theme &mdash; %1$s &mdash; or <a href="%2$s">choose a new one</a>. If you stick with %3$s, here are a few ways to make your site look unique.' ), $ct->title, esc_url( admin_url( 'themes.php' ) ), $ct->title );
     1337                printf( __( 'Use the current theme &mdash; %1$s &mdash; or <a href="%2$s">choose a new one</a>. If you stick with %1$s, here are a few ways to make your site look unique.' ), $theme->display('Name'), esc_url( admin_url( 'themes.php' ) ) );
    13381338                echo '</p>';
    13391339            ?>
     
    13461346            } else {
    13471347                echo '<p>';
    1348                 printf( __( 'Use the current theme &mdash; %1$s &mdash; or <a href="%2$s">choose a new one</a>.' ), $ct->title, esc_url( admin_url( 'themes.php' ) ) );
     1348                printf( __( 'Use the current theme &mdash; %1$s &mdash; or <a href="%2$s">choose a new one</a>.' ), $this->display('Name'), esc_url( admin_url( 'themes.php' ) ) );
    13491349                echo '</p>';
    13501350            }
Note: See TracChangeset for help on using the changeset viewer.