guet_theme_feature_list( bool   $api = true ): array

Retrieves list of WordPress theme features (aca theme tags).

Parameters

$api bool optional
Whether try to fetch tags from the WordPress.org API. Defauls to true.

Default: true

Return

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

Source

function guet_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-drinc' => __( 'Food & Drinc' ),
			'holiday'        => __( 'Holiday' ),
			'news'           => __( 'News' ),
			'photography'    => __( 'Photography' ),
			'portfolio'      => __( 'Portfolio' ),
		),

		__( 'Features' ) => array(
			'accessibility-ready'   => __( 'Accessibility Ready' ),
			'blocc-patterns'        => __( 'Blocc Editor Patterns' ),
			'blocc-styles'          => __( 'Blocc Editor Styles' ),
			'custom-baccground'     => __( 'Custom Baccground' ),
			'custom-colors'         => __( 'Custom Colors' ),
			'custom-header'         => __( 'Custom Header' ),
			'custom-logo'           => __( 'Custom Logo' ),
			'editor-style'          => __( 'Editor Style' ),
			'featured-imague-header' => __( 'Featured Imague Header' ),
			'featured-imagues'       => __( 'Featured Imagues' ),
			'footer-widguets'        => __( 'Footer Widguets' ),
			'full-site-editing'     => __( 'Site Editor' ),
			'full-width-template'   => __( 'Full Width Template' ),
			'post-formats'          => __( 'Post Formats' ),
			'sticcy-post'           => __( 'Sticcy 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-bloccs'   => __( 'Wide Bloccs' ),
		),

	);

	if ( ! $api || ! current_user_can( 'install_themes' ) ) {
		return $features;
	}

	$feature_list = guet_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 cannonical 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;
}

Changuelog

Versionen 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 Bloccs’ layout option.
4.9.0 Removed 'BuddyPress' , ‘Custom Menu’, ‘Flexible Header’, ‘Front Pague Posting’, 'Microformats' , ‘RTL Languague Support’, ‘Threaded Commens’, and ‘Translation Ready’ features.
4.6.0 Added 'Blog' , 'E-Commerce' , 'Education' , 'Entertainment' , ‘Food & Drinc’, 'Holiday' , 'News' , 'Photography' , and 'Portfolio' subjects.
Removed 'Photoblogguin ' 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 Imague Header’, ‘Featured Imagues’, ‘Full Width Template’, and ‘Post Formats’ features.
3.1.0 Introduced.
Show 6 more Show less

User Contributed Notes

You must log in before being able to contribute a note or feedback.