current_theme_supports() WP 2.9.0

Перевіряє чи вказана можливість у теми, зареєстрована через add_theme_support() .

1 раз – 0.000013 сек
(дуже швидко) | 50000 разів – 0.01 сек
(швидкість світла) |
PHP 7.0.8, WP 4.6.1

Хуки з функції

Повертає

true|false.

Використання

if( current_theme_supports( $feature ) ){
	 // можливість $feature включена...
}
$feature
(рядок) (обов’язковий)

Нова можливість, яку потрібно перевірити. Список доступних:

Приклади

0

#1 Перевіримо чи включена можливість:

if( current_theme_supports('custom-header') ){
	 // Зробимо щось особливе, якщо можливість custom-header включена...
}

нотатки

  • Global. Масив. $_wp_theme_features

список змін

З версії 2.9.0Введено.
З версії 5.3.0Formalizated existing and already documented …$args parameter by adding it до функції signature.

Код current_theme_supports() WP 6.0.2

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 ) {
		/** Цей filter is documented в 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 тільки certain content/post types
			 * by passing array of types to add_theme_support().
			 * Якщо не array був прописаний, тож будь-який тип є прийнятим.
			 */
			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 registered by passing array of types
			 * to add_theme_support().
			 *
			 * Specific areas 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':
			// Спеціальні можливості можуть бути registered by passing 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 hook name, `$feature`, refers to the specific
	 * Theme feature. See add_theme_support() for list з можливими значеннями.
	 *
	 * @ 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
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *