Retrieves list of WordPress theme features (aka theme tags).
Parameters
$api
booloptional- Whether try to fetch tags from the WordPress.org API. Defaults to true.
Default:
true
Source
function get_theme_feature_list( $api = true ) {
// Hard-coded list is used if API is not accessible.
$features = array(
__( 'Subject' ) => array(
'blog' => __( 'Blog' ),
'e-commerce' => __( 'E-Commerce' ),
'education' => __( 'Education' ),
'entertainment' => __( 'Entertainment' ),
'food-and-drink' => __( 'Food & Drink' ),
'holiday' => __( 'Holiday' ),
'news' => __( 'News' ),
'photography' => __( 'Photography' ),
'portfolio' => __( 'Portfolio' ),
),
__( 'Features' ) => array(
'accessibility-ready' => __( 'Accessibility Ready' ),
'block-patterns' => __( 'Block Editor Patterns' ),
'block-styles' => __( 'Block Editor Styles' ),
'custom-background' => __( 'Custom Background' ),
'custom-colors' => __( 'Custom Colors' ),
'custom-header' => __( 'Custom Header' ),
'custom-logo' => __( 'Custom Logo' ),
'editor-style' => __( 'Editor Style' ),
'featured-image-header' => __( 'Featured Image Header' ),
'featured-images' => __( 'Featured Images' ),
'footer-widgets' => __( 'Footer Widgets' ),
'full-site-editing' => __( 'Site Editor' ),
'full-width-template' => __( 'Full Width Template' ),
'post-formats' => __( 'Post Formats' ),
'sticky-post' => __( 'Sticky Post' ),
'style-variations' => __( 'Style Variations' ),
'template-editing' => __( 'Template Editing' ),
'theme-options' => __( 'Theme Options' ),
),
__( 'Layout' ) => array(
'grid-layout' => __( 'Grid Layout' ),
'one-column' => __( 'One Column' ),
'two-columns' => __( 'Two Columns' ),
'three-columns' => __( 'Three Columns' ),
'four-columns' => __( 'Four Columns' ),
'left-sidebar' => __( 'Left Sidebar' ),
'right-sidebar' => __( 'Right Sidebar' ),
'wide-blocks' => __( 'Wide Blocks' ),
),
);
if ( ! $api || ! current_user_can( 'install_themes' ) ) {
return $features;
}
$feature_list = get_site_transient( 'wporg_theme_feature_list' );
if ( ! $feature_list ) {
set_site_transient( 'wporg_theme_feature_list', array(), 3 * HOUR_IN_SECONDS );
}
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, 3 * HOUR_IN_SECONDS );
$category_translations = array(
'Layout' => __( 'Layout' ),
'Features' => __( 'Features' ),
'Subject' => __( 'Subject' ),
);
$wporg_features = array();
// Loop over the wp.org canonical list and apply translations.
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;
}
Changelog
Version | Description |
---|---|
6.2.0 | Added ‘Style Variations’ feature. |
6.1.1 | Replaced ‘Full Site Editing’ feature name with ‘Site Editor’. |
5.8.1 | Added ‘Template Editing’ feature. |
5.5.0 | Added ‘Wide Blocks’ layout option. |
4.9.0 | Removed 'BuddyPress' , ‘Custom Menu’, ‘Flexible Header’, ‘Front Page Posting’, 'Microformats' , ‘RTL Language Support’, ‘Threaded Comments’, and ‘Translation Ready’ features. |
4.6.0 | Added 'Blog' , 'E-Commerce' , 'Education' , 'Entertainment' , ‘Food & Drink’, 'Holiday' , 'News' , 'Photography' , and 'Portfolio' subjects.Removed 'Photoblogging' and 'Seasonal' subjects. |
3.9.0 | Combined 'Layout' and 'Columns' filters. |
3.8.0 | Added ‘Accessibility Ready’ feature and ‘Responsive Layout’ option. |
3.5.0 | Added ‘Flexible Header’ feature. |
3.2.0 | Added 'Gray' color and ‘Featured Image Header’, ‘Featured Images’, ‘Full Width Template’, and ‘Post Formats’ features. |
3.1.0 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.