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.



git-svn-id: http://svn.automattic.com/wordpress/trunk@20029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
nacin
2012-02-28 21:24:44 +00:00
parent f596a23899
commit d130a63e25
17 changed files with 1520 additions and 646 deletions

View File

@@ -879,4 +879,61 @@ function add_contextual_help( $screen, $help ) {
$screen = convert_to_screen( $screen );
WP_Screen::add_old_compat_help( $screen, $help );
}
/**
* Get the allowed themes for the current blog.
*
* @since 3.0.0
* @deprecated 3.4.0
* @deprecated Use wp_get_themes()
* @see wp_get_themes()
*
* @return array $themes Array of allowed themes.
*/
function get_allowed_themes() {
_deprecated_function( __FUNCTION__, '3.4', "wp_get_themes( array( 'allowed' => true ) )" );
$themes = wp_get_themes( array( 'allowed' => true ) );
$wp_themes = array();
foreach ( $themes as $theme ) {
$wp_themes[ $theme->get('Name') ] = $theme;
}
return $wp_themes;
}
/**
* {@internal Missing Short Description}}
*
* @since 1.5.0
*
* @return unknown
*/
function get_broken_themes() {
_deprecated_function( __FUNCTION__, '3.4', "wp_get_themes( array( 'errors' => true )" );
$themes = wp_get_themes( array( 'errors' => true ) );
$broken = array();
foreach ( $themes as $theme ) {
$broken[ $theme->get('Name') ] = array(
'Title' => $theme->get('Name'),
'Description' => $theme->errors()->get_error_message(),
);
}
return $broken;
}
/**
* {@internal Missing Short Description}}
*
* @since 2.0.0
*
* @return unknown
*/
function current_theme_info() {
_deprecated_function( __FUNCTION__, '3.4', 'wp_get_theme()' );
return wp_get_theme();
}