wppaste
WordPress

current_theme_supports( string $feature, mixed $args ): bool

Since
2.9.0, 5.3.0
Source
wp-includes/theme.php:3160
Checks a theme's support for a given feature.

Description

Example usage: current_theme_supports( 'custom-logo' ); current_theme_supports( 'html5', 'comment-form' );

Parameters

$featurestring
The feature being checked. See add_theme_support() for the list of possible values.
$argsmixed
Optional extra arguments to be checked against certain features.

Return

bool
True if the active theme supports the feature, false otherwise.

Hooks fired · 2

2 hooks fire while current_theme_supports() runs, in this order:

  1. apply_filters( current_theme_supports-{$feature} )filterline 3174 (+14 into the body)

    Filters whether the active theme supports a specific feature.

  2. apply_filters( current_theme_supports-{$feature} )filterline 3220 (+60 into the body)

    Filters whether the active theme supports a specific feature.

Uses · 2

Used by · 50

Show all 50

Source

function current_theme_supports( $feature, ...$args ) {	global $_wp_theme_features; 	if ( 'custom-header-uploads' === $feature ) {		return current_theme_supports( 'custom-header', 'uploads' );	} 	if ( ! isset( $_wp_theme_features[ $feature ] ) ) {		return false;	} 	// If no args passed then no extra checks need to be performed.	if ( ! $args ) {		/** This filter is documented in wp-includes/theme.php */		return apply_filters( "current_theme_supports-{$feature}", true, $args, $_wp_theme_features[ $feature ] ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores	} 	switch ( $feature ) {		case 'post-thumbnails':			/*			 * post-thumbnails can be registered for only certain content/post types			 * by passing an array of types to add_theme_support().			 * If no array was passed, then any type is accepted.			 */			if ( true === $_wp_theme_features[ $feature ] ) {  // Registered for all types.				return true;			}			$content_type = $args[0];			return in_array( $content_type, $_wp_theme_features[ $feature ][0], true ); 		case 'html5':		case 'post-formats':			/*			 * Specific post formats can be registered by passing an array of types			 * to add_theme_support().			 *			 * Specific areas of HTML5 support *must* be passed via an array to add_theme_support().			 */			$type = $args[0];			return in_array( $type, $_wp_theme_features[ $feature ][0], true ); 		case 'custom-logo':		case 'custom-header':		case 'custom-background':			// Specific capabilities can be registered by passing an array to add_theme_support().			return ( isset( $_wp_theme_features[ $feature ][0][ $args[0] ] ) && $_wp_theme_features[ $feature ][0][ $args[0] ] );	} 	/**	 * Filters whether the active theme supports a specific feature.	 *	 * The dynamic portion of the hook name, `$feature`, refers to the specific	 * theme feature. See add_theme_support() for the list of possible values.	 *	 * @since 3.4.0	 *	 * @param bool   $supports Whether the active theme supports the given feature. Default true.	 * @param array  $args     Array of arguments for the feature.	 * @param string $feature  The theme feature.	 */	return apply_filters( "current_theme_supports-{$feature}", true, $args, $_wp_theme_features[ $feature ] ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores}

History

Introduced in 2.9.0. Unchanged from 6.7.7 through 7.1.0.

  1. 6.7.7
  2. 6.8.8
  3. 6.9.7
  4. 7.0.4
  5. 7.1.0

Signature, return type and hooks compared across 5 parsed releases.

5.3.0
Formalized the existing and already documented ...$args parameter by adding it to the function signature.from the docblock
2.9.0
Introduced.from the docblock

About this page

Parsed data
Generated from the wordpress-develop 6.7.7 tag, from src/wp-includes/theme.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.
Corrections
Something wrong on this page? Report it and it gets fixed in the next regeneration.