get_theme_feature_list() replaces install_themes_feature_list(). Does translation and works if feature_list is not accessible from api.wordpress.org. see #14936
git-svn-id: http://svn.automattic.com/wordpress/trunk@15655 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
d4ded42a1b
commit
bd34872821
|
@ -70,6 +70,8 @@ function themes_api($action, $args = null) {
|
||||||
*
|
*
|
||||||
* @since 2.8.0
|
* @since 2.8.0
|
||||||
*
|
*
|
||||||
|
* @deprecated since 3.1.0 Use get_theme_feature_list() instead.
|
||||||
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
function install_themes_feature_list( ) {
|
function install_themes_feature_list( ) {
|
||||||
|
@ -124,30 +126,15 @@ function install_themes_dashboard() {
|
||||||
<form method="post" action="<?php echo admin_url( 'theme-install.php?tab=search' ); ?>">
|
<form method="post" action="<?php echo admin_url( 'theme-install.php?tab=search' ); ?>">
|
||||||
<p class="install-help"><?php _e('Find a theme based on specific features') ?></p>
|
<p class="install-help"><?php _e('Find a theme based on specific features') ?></p>
|
||||||
<?php
|
<?php
|
||||||
$feature_list = install_themes_feature_list( );
|
$feature_list = get_theme_feature_list( );
|
||||||
echo '<div class="feature-filter">';
|
echo '<div class="feature-filter">';
|
||||||
$trans = array ('Colors' => __('Colors'), 'black' => __('Black'), 'blue' => __('Blue'), 'brown' => __('Brown'),
|
|
||||||
'green' => __('Green'), 'orange' => __('Orange'), 'pink' => __('Pink'), 'purple' => __('Purple'), 'red' => __('Red'),
|
|
||||||
'silver' => __('Silver'), 'tan' => __('Tan'), 'white' => __('White'), 'yellow' => __('Yellow'), 'dark' => __('Dark'),
|
|
||||||
'light' => __('Light'), 'Columns' => __('Columns'), 'one-column' => __('One Column'), 'two-columns' => __('Two Columns'),
|
|
||||||
'three-columns' => __('Three Columns'), 'four-columns' => __('Four Columns'), 'left-sidebar' => __('Left Sidebar'),
|
|
||||||
'right-sidebar' => __('Right Sidebar'), 'Width' => __('Width'), 'fixed-width' => __('Fixed Width'), 'flexible-width' => __('Flexible Width'),
|
|
||||||
'Features' => __('Features'), 'custom-colors' => __('Custom Colors'), 'custom-header' => __('Custom Header'), 'theme-options' => __('Theme Options'),
|
|
||||||
'threaded-comments' => __('Threaded Comments'), 'sticky-post' => __('Sticky Post'), 'microformats' => __('Microformats'),
|
|
||||||
'Subject' => __('Subject'), 'holiday' => __('Holiday'), 'photoblogging' => __('Photoblogging'), 'seasonal' => __('Seasonal'),
|
|
||||||
);
|
|
||||||
|
|
||||||
foreach ( (array) $feature_list as $feature_name => $features ) {
|
foreach ( (array) $feature_list as $feature_name => $features ) {
|
||||||
if ( isset($trans[$feature_name]) )
|
|
||||||
$feature_name = $trans[$feature_name];
|
|
||||||
$feature_name = esc_html( $feature_name );
|
$feature_name = esc_html( $feature_name );
|
||||||
echo '<div class="feature-name">' . $feature_name . '</div>';
|
echo '<div class="feature-name">' . $feature_name . '</div>';
|
||||||
|
|
||||||
echo '<ol style="float: left; width: 725px;" class="feature-group">';
|
echo '<ol style="float: left; width: 725px;" class="feature-group">';
|
||||||
foreach ( $features as $feature ) {
|
foreach ( $features as $feature => $feature_name ) {
|
||||||
$feature_name = $feature;
|
|
||||||
if ( isset($trans[$feature]) )
|
|
||||||
$feature_name = $trans[$feature];
|
|
||||||
$feature_name = esc_html( $feature_name );
|
$feature_name = esc_html( $feature_name );
|
||||||
$feature = esc_attr($feature);
|
$feature = esc_attr($feature);
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -250,4 +250,107 @@ function theme_update_available( $theme ) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve list of WordPress theme features (aka theme tags)
|
||||||
|
*
|
||||||
|
* @since 3.1.0
|
||||||
|
*
|
||||||
|
* @return array Array of features keyed by category with translations keyed by slug.
|
||||||
|
*/
|
||||||
|
function get_theme_feature_list() {
|
||||||
|
// Hard-coded list is used if api not accessible.
|
||||||
|
$features = array(
|
||||||
|
__('Colors') => array(
|
||||||
|
'black' => __( 'Black' ),
|
||||||
|
'blue' => __( 'Blue' ),
|
||||||
|
'brown' => __( 'Brown' ),
|
||||||
|
'green' => __( 'Green' ),
|
||||||
|
'orange' => __( 'Orange' ),
|
||||||
|
'pink' => __( 'Pink' ),
|
||||||
|
'purple' => __( 'Purple' ),
|
||||||
|
'red' => __( 'Red' ),
|
||||||
|
'silver' => __( 'Silver' ),
|
||||||
|
'tan' => __( 'Tan' ),
|
||||||
|
'white' => __( 'White' ),
|
||||||
|
'yellow' => __( 'Yellow' ),
|
||||||
|
'dark' => __( 'Dark' ),
|
||||||
|
'light' => __( 'Light ')
|
||||||
|
),
|
||||||
|
|
||||||
|
__('Columns') => array(
|
||||||
|
'one-column' => __( 'One Column' ),
|
||||||
|
'two-columns' => __( 'Two Columns' ),
|
||||||
|
'three-columns' => __( 'Three Columns' ),
|
||||||
|
'four-columns' => __( 'Four Columns' ),
|
||||||
|
'left-sidebar' => __( 'Left Sidebar' ),
|
||||||
|
'right-sidebar' => __( 'Right Sidebar' )
|
||||||
|
),
|
||||||
|
|
||||||
|
__('Width') => array(
|
||||||
|
'fixed-width' => __( 'Fixed Width' ),
|
||||||
|
'flexible-width' => __( 'Flexible Width' )
|
||||||
|
),
|
||||||
|
|
||||||
|
__( 'Features' ) => array(
|
||||||
|
'blavatar' => __( 'Blavatar' ),
|
||||||
|
'buddypress' => __( 'BuddyPress' ),
|
||||||
|
'custom-background' => __( 'Custom Background' ),
|
||||||
|
'custom-colors' => __( 'Custom Colors' ),
|
||||||
|
'custom-header' => __( 'Custom Header' ),
|
||||||
|
'custom-menu' => __( 'Custom Menu' ),
|
||||||
|
'editor-style' => __( 'Editor Style' ),
|
||||||
|
'front-page-post-form' => __( 'Front Page Posting' ),
|
||||||
|
'microformats' => __( 'Microformats' ),
|
||||||
|
'sticky-post' => __( 'Sticky Post' ),
|
||||||
|
'theme-options' => __( 'Theme Options' ),
|
||||||
|
'threaded-comments' => __( 'Threaded Comments' ),
|
||||||
|
'translation-ready' => __( 'Translation Ready' ),
|
||||||
|
'rtl-language-support' => __( 'RTL Language Support' )
|
||||||
|
),
|
||||||
|
|
||||||
|
__( 'Subject' ) => array(
|
||||||
|
'holiday' => __( 'Holiday' ),
|
||||||
|
'photoblogging' => __( 'Photoblogging' ),
|
||||||
|
'seasonal' => __( 'Seasonal' )
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
if ( !current_user_can('install_themes') )
|
||||||
|
return $features;
|
||||||
|
|
||||||
|
if ( !$feature_list = get_site_transient( 'wporg_theme_feature_list' ) )
|
||||||
|
set_site_transient( 'wporg_theme_feature_list', array( ), 10800);
|
||||||
|
|
||||||
|
if ( !$feature_list ) {
|
||||||
|
$feature_list = themes_api( 'feature_list', array( ) );
|
||||||
|
if ( is_wp_error( $feature_list ) )
|
||||||
|
return $features;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( !$feature_list )
|
||||||
|
return $features;
|
||||||
|
|
||||||
|
set_site_transient( 'wporg_theme_feature_list', $feature_list, 10800 );
|
||||||
|
|
||||||
|
$category_translations = array( 'Colors' => __('Colors'), 'Columns' => __('Columns'), 'Width' => __('Width'),
|
||||||
|
'Features' => __('Features'), 'Subject' => __('Subject') );
|
||||||
|
|
||||||
|
// Loop over the wporg canonical list and apply translations
|
||||||
|
$wporg_features = array();
|
||||||
|
foreach ( (array) $feature_list as $feature_category => $feature_items ) {
|
||||||
|
if ( isset($category_translations[$feature_category]) )
|
||||||
|
$feature_category = $category_translations[$feature_category];
|
||||||
|
$wporg_features[$feature_category] = array();
|
||||||
|
|
||||||
|
foreach ( $feature_items as $feature ) {
|
||||||
|
if ( isset($features[$feature_category][$feature]) )
|
||||||
|
$wporg_features[$feature_category][$feature] = $features[$feature_category][$feature];
|
||||||
|
else
|
||||||
|
$wporg_features[$feature_category][$feature] = $feature;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $wporg_features;
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
Loading…
Reference in New Issue