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-includes/deprecated.php

    r20000 r20029  
    29082908    _deprecated_function( __FUNCTION__, 'error_log()' );
    29092909}
     2910
     2911/**
     2912 * Retrieve list of themes with theme data in theme directory.
     2913 *
     2914 * The theme is broken, if it doesn't have a parent theme and is missing either
     2915 * style.css and, or index.php. If the theme has a parent theme then it is
     2916 * broken, if it is missing style.css; index.php is optional.
     2917 *
     2918 * @since 1.5.0
     2919 * @global array $wp_themes Stores the working themes.
     2920 *
     2921 * @return array Theme list with theme data.
     2922 */
     2923function get_themes() {
     2924    _deprecated_function( __FUNCTION__, '3.4', 'wp_get_themes()' );
     2925
     2926    global $wp_themes;
     2927    if ( isset( $wp_themes ) )
     2928        return $wp_themes;
     2929
     2930    $themes = wp_get_themes();
     2931    $wp_themes = array();
     2932
     2933    foreach ( $themes as $theme ) {
     2934        $wp_themes[ $theme->get('Name') ] = $theme;
     2935    }
     2936
     2937    return $wp_themes;
     2938}
     2939
     2940/**
     2941 * Retrieve theme data.
     2942 *
     2943 * @since 1.5.0
     2944 *
     2945 * @param string $theme Theme name.
     2946 * @return array|null Null, if theme name does not exist. Theme data, if exists.
     2947 */
     2948function get_theme( $theme ) {
     2949    _deprecated_function( __FUNCTION__, '3.4', 'wp_get_theme($stylesheet)' );
     2950
     2951    $themes = get_themes();
     2952    if ( is_array( $themes ) && array_key_exists( $theme, $themes ) )
     2953        return $themes[$theme];
     2954    return null;
     2955}
Note: See TracChangeset for help on using the changeset viewer.