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


Top ↑

Return

(array) Array of features keyed by category with translations keyed by slug.


Top ↑

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;
}


Top ↑

Changelog

Changelog
VersionDescription
5.8.1Added 'Template Editing' feature.
5.5.0Added 'Wide Blocks' layout option.
4.9.0Removed 'BuddyPress', 'Custom Menu', 'Flexible Header', 'Front Page Posting', 'Microformats', 'RTL Language Support', 'Threaded Comments', and 'Translation Ready' features.
4.6.0Added 'Blog', 'E-Commerce', 'Education', 'Entertainment', 'Food & Drink', 'Holiday', 'News', 'Photography', and 'Portfolio' subjects. Removed 'Photoblogging' and 'Seasonal' subjects.
3.9.0Combined 'Layout' and 'Columns' filters.
3.8.0Added 'Accessibility Ready' feature and 'Responsive Layout' option.
3.5.0Added 'Flexible Header' feature.
3.2.0Added 'Gray' color and 'Featured Image Header', 'Featured Images', 'Full Width Template', and 'Post Formats' features.
3.1.0Introduced.

The content displayed on this page has been created in part by processing WordPress source code files which are made available under the GPLv2 (or a later version) license by the Free Software Foundation. In addition to this, the content includes user-written examples and information. All material is subject to review and curation by the WPPaste.com community.