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

@@ -169,35 +169,6 @@ function wpmu_delete_user( $id ) {
return true;
}
function wpmu_get_blog_allowedthemes( $blog_id = 0 ) {
$themes = get_themes();
if ( $blog_id != 0 )
switch_to_blog( $blog_id );
$blog_allowed_themes = get_option( 'allowedthemes' );
if ( !is_array( $blog_allowed_themes ) || empty( $blog_allowed_themes ) ) { // convert old allowed_themes to new allowedthemes
$blog_allowed_themes = get_option( 'allowed_themes' );
if ( is_array( $blog_allowed_themes ) ) {
foreach( (array) $themes as $key => $theme ) {
$theme_key = esc_html( $theme['Stylesheet'] );
if ( isset( $blog_allowed_themes[$key] ) == true ) {
$blog_allowedthemes[$theme_key] = 1;
}
}
$blog_allowed_themes = $blog_allowedthemes;
add_option( 'allowedthemes', $blog_allowed_themes );
delete_option( 'allowed_themes' );
}
}
if ( $blog_id != 0 )
restore_current_blog();
return $blog_allowed_themes;
}
function update_option_new_admin_email( $old_value, $value ) {
$email = get_option( 'admin_email' );
if ( $value == get_option( 'admin_email' ) || !is_email( $value ) )
@@ -296,26 +267,6 @@ function new_user_email_admin_notice() {
}
add_action( 'admin_notices', 'new_user_email_admin_notice' );
function get_site_allowed_themes() {
$themes = get_themes();
$allowed_themes = get_site_option( 'allowedthemes' );
if ( !is_array( $allowed_themes ) || empty( $allowed_themes ) ) {
$allowed_themes = get_site_option( 'allowed_themes' ); // convert old allowed_themes format
if ( !is_array( $allowed_themes ) ) {
$allowed_themes = array();
} else {
foreach( (array) $themes as $key => $theme ) {
$theme_key = esc_html( $theme['Stylesheet'] );
if ( isset( $allowed_themes[ $key ] ) == true ) {
$allowedthemes[ $theme_key ] = 1;
}
}
$allowed_themes = $allowedthemes;
}
}
return $allowed_themes;
}
/**
* Determines if there is any upload space left in the current blog's quota.
*