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: https://develop.svn.wordpress.org/trunk@20029 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Andrew Nacin
2012-02-28 21:24:44 +00:00
parent 233c465de2
commit 53a209a4ee
17 changed files with 1520 additions and 646 deletions
+10 -10
View File
@@ -383,11 +383,11 @@ function wp_dashboard_right_now() {
echo "\n\t</table>\n\t</div>";
echo "\n\t".'<div class="versions">';
$ct = current_theme_info();
$theme = wp_get_theme();
echo "\n\t<p>";
if ( empty( $ct->stylesheet_dir ) ) {
if ( $theme->errors() ) {
if ( ! is_multisite() || is_super_admin() )
echo '<span class="error-message">' . __('ERROR: The themes directory is either empty or doesn&#8217;t exist. Please check your installation.') . '</span>';
} elseif ( ! empty($wp_registered_sidebars) ) {
@@ -401,7 +401,7 @@ function wp_dashboard_right_now() {
}
$num = number_format_i18n( $num_widgets );
$switch_themes = $ct->title;
$switch_themes = $theme->display('Name');
if ( current_user_can( 'switch_themes') )
$switch_themes = '<a href="themes.php">' . $switch_themes . '</a>';
if ( current_user_can( 'edit_theme_options' ) ) {
@@ -411,9 +411,9 @@ function wp_dashboard_right_now() {
}
} else {
if ( current_user_can( 'switch_themes' ) )
printf( __('Theme <span class="b"><a href="themes.php">%1$s</a></span>'), $ct->title );
printf( __('Theme <span class="b"><a href="themes.php">%1$s</a></span>'), $theme->display('Name') );
else
printf( __('Theme <span class="b">%1$s</span>'), $ct->title );
printf( __('Theme <span class="b">%1$s</span>'), $theme->display('Name') );
}
echo '</p>';
@@ -1313,14 +1313,14 @@ function wp_welcome_panel() {
<div class="welcome-panel-column welcome-panel-last">
<h4><span class="icon16 icon-appearance"></span> <?php _e( 'Customize Your Site' ); ?></h4>
<?php
$ct = current_theme_info();
if ( empty ( $ct->stylesheet_dir ) ) :
$theme = wp_get_theme();
if ( $theme->errors() ) :
echo '<p>';
printf( __( '<a href="%s">Install a theme</a> to get started customizing your site.' ), esc_url( admin_url( 'themes.php' ) ) );
echo '</p>';
else:
$customize_links = array();
if ( 'twentyeleven' == $ct->stylesheet )
if ( 'twentyeleven' == $theme->get_stylesheet() )
$customize_links[] = sprintf( __( '<a href="%s">Choose light or dark</a>' ), esc_url( admin_url( 'themes.php?page=theme_options' ) ) );
if ( current_theme_supports( 'custom-background' ) )
@@ -1334,7 +1334,7 @@ function wp_welcome_panel() {
if ( ! empty( $customize_links ) ) {
echo '<p>';
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 );
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' ) ) );
echo '</p>';
?>
<ul>
@@ -1345,7 +1345,7 @@ function wp_welcome_panel() {
<?php
} else {
echo '<p>';
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' ) ) );
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' ) ) );
echo '</p>';
}
endif; ?>