Make WordPress Core


Ignore:
Timestamp:
02/28/2012 09:24:44 PM (13 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/ms.php

    r19712 r20029  
    170170}
    171171
    172 function wpmu_get_blog_allowedthemes( $blog_id = 0 ) {
    173     $themes = get_themes();
    174 
    175     if ( $blog_id != 0 )
    176         switch_to_blog( $blog_id );
    177 
    178     $blog_allowed_themes = get_option( 'allowedthemes' );
    179     if ( !is_array( $blog_allowed_themes ) || empty( $blog_allowed_themes ) ) { // convert old allowed_themes to new allowedthemes
    180         $blog_allowed_themes = get_option( 'allowed_themes' );
    181 
    182         if ( is_array( $blog_allowed_themes ) ) {
    183             foreach( (array) $themes as $key => $theme ) {
    184                 $theme_key = esc_html( $theme['Stylesheet'] );
    185                 if ( isset( $blog_allowed_themes[$key] ) == true ) {
    186                     $blog_allowedthemes[$theme_key] = 1;
    187                 }
    188             }
    189             $blog_allowed_themes = $blog_allowedthemes;
    190             add_option( 'allowedthemes', $blog_allowed_themes );
    191             delete_option( 'allowed_themes' );
    192         }
    193     }
    194 
    195     if ( $blog_id != 0 )
    196         restore_current_blog();
    197 
    198     return $blog_allowed_themes;
    199 }
    200 
    201172function update_option_new_admin_email( $old_value, $value ) {
    202173    $email = get_option( 'admin_email' );
     
    296267}
    297268add_action( 'admin_notices', 'new_user_email_admin_notice' );
    298 
    299 function get_site_allowed_themes() {
    300     $themes = get_themes();
    301     $allowed_themes = get_site_option( 'allowedthemes' );
    302     if ( !is_array( $allowed_themes ) || empty( $allowed_themes ) ) {
    303         $allowed_themes = get_site_option( 'allowed_themes' ); // convert old allowed_themes format
    304         if ( !is_array( $allowed_themes ) ) {
    305             $allowed_themes = array();
    306         } else {
    307             foreach( (array) $themes as $key => $theme ) {
    308                 $theme_key = esc_html( $theme['Stylesheet'] );
    309                 if ( isset( $allowed_themes[ $key ] ) == true ) {
    310                     $allowedthemes[ $theme_key ] = 1;
    311                 }
    312             }
    313             $allowed_themes = $allowedthemes;
    314         }
    315     }
    316     return $allowed_themes;
    317 }
    318269
    319270/**
Note: See TracChangeset for help on using the changeset viewer.