get_theme_feature_list()
Retrieves list of WordPress theme features (aka theme tags).
No Hooks.
Return
Array
. Array of features keyed by category with translations keyed by slug.
Usage
get_theme_feature_list( $api );
- $api(true|false)
- Whether try to fetch tags from the WordPress.org API.
Default: true
Changelog
Since 3.1.0 | Introduced. |
Since 3.2.0 | Added 'Gray' color and 'Featured Image Header', 'Featured Images', 'Full Width Template', and 'Post Formats' features. |
Since 3.5.0 | Added 'Flexible Header' feature. |
Since 3.8.0 | Renamed 'Width' filter to 'Layout'. |
Since 3.8.0 | Renamed 'Fixed Width' and 'Flexible Width' options to 'Fixed Layout' and 'Fluid Layout'. |
Since 3.8.0 | Added 'Accessibility Ready' feature and 'Responsive Layout' option. |
Since 3.9.0 | Combined 'Layout' and 'Columns' filters. |
Since 4.6.0 | Removed 'Colors' filter. |
Since 4.6.0 | Added 'Grid Layout' option. Removed 'Fixed Layout', 'Fluid Layout', and 'Responsive Layout' options. |
Since 4.6.0 | Added 'Custom Logo' and 'Footer Widgets' features. Removed 'Blavatar' feature. |
Since 4.6.0 | Added 'Blog', 'E-Commerce', 'Education', 'Entertainment', 'Food & Drink', 'Holiday', 'News', 'Photography', and 'Portfolio' subjects. Removed 'Photoblogging' and 'Seasonal' subjects. |
Since 4.9.0 | Reordered the filters from 'Layout', 'Features', 'Subject' to 'Subject', 'Features', 'Layout'. |
Since 4.9.0 | Removed 'BuddyPress', 'Custom Menu', 'Flexible Header', 'Front Page Posting', 'Microformats', 'RTL Language Support', 'Threaded Comments', and 'Translation Ready' features. |
Since 5.5.0 | Added 'Block Editor Patterns', 'Block Editor Styles', and 'Full Site Editing' features. |
Since 5.5.0 | Added 'Wide Blocks' layout option. |
Since 5.8.1 | Added 'Template Editing' feature. |
Since 6.1.1 | Replaced 'Full Site Editing' feature name with 'Site Editor'. |
Since 6.2.0 | Added 'Style Variations' feature. |
get_theme_feature_list() get theme feature list code WP 6.6.2
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; }