get_theme_feature_list() WordPress Function
The get_theme_feature_list() function is used to return a list of all the features supported by the current theme. This function is useful for checking which features are available before using them in your code.
get_theme_feature_list( bool $api = true ) #
Retrieves list of WordPress theme features (aka theme tags).
Parameters
- $api
(bool)(Optional) Whether try to fetch tags from the WordPress.org API. Defaults to true.
Default value: true
Return
(array) Array of features keyed by category with translations keyed by slug.
Source
File: wp-admin/includes/theme.php
306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 | 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' => __( 'Full Site Editing' ), 'full-width-template' => __( 'Full Width Template' ), 'post-formats' => __( 'Post Formats' ), 'sticky-post' => __( 'Sticky Post' ), '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 ; } |
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
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. |