Функция get_theme_support() в WordPress: примеры использования

Функция GET_THEME_SUPPORT() │ WP 3.1.0

Функция get_theme_support() получает аргументы поддержки темы, которые были переданы при регистрации этой поддержки. Это полезно, если вы хотите проверить, какие возможности добавлены в вашей теме WordPress.

Пример использования

get_theme_support( 'custom-logo' );
get_theme_support( 'custom-header', 'width' );

Время выполнения

  • 1 раз — 0.000015 сек (очень быстро)
  • 50000 раз — 0.02 сек (практически мгновенно)

Возвращаемое значение

Функция может вернуть разные данные:

  • Массив с дополнительными аргументами или значение для зарегистрированной функции.

Использование

get_theme_support( $feature, ...$args );
  • $feature (string) (обязательно) — функция, которую нужно проверить. Смотрите add_theme_support() для списка возможных значений.
  • ...$args (mixed) (опционально) — дополнительные аргументы, которые будут проверены в отношении некоторых функций.

Примеры

Пример 1: Получение аргументов возможности

Получим аргументы поддержки темы для функции 'html5'.

$args = get_theme_support( 'html5' );

print_r( $args );
/* Выводит:
Array
(
    [0] => Array
        (
            [0] => comment-list
            [1] => comment-form
            [2] => search-form
            [3] => gallery
            [4] => caption
        )

)
*/

Получим аргументы поддержки для функции 'custom-background':

$theme_support = get_theme_support( 'custom-background' );

print_r( $theme_support );
/* Выводит:
Array
(
    [0] => Array
        (
            [default-image] =>
            [default-repeat] => repeat
            [default-position-x] => left
            [default-attachment] => scroll
            [default-color] => ffffff
            [wp-head-callback] => _custom_background_cb
            [admin-head-callback] =>
            [admin-preview-callback] =>
        )

)
*/

Пример 2: Как выглядит переменная $_WP_THEME_FEATURES

global $_wp_theme_features;

print_r( $_wp_theme_features );
/* Выводит:
Array
(
    [menus] => 1
    [post-thumbnails] => 1
    [html5] => Array
        (
            [0] => Array
                (
                    [0] => comment-list
                    [1] => comment-form
                    [2] => search-form
                    [3] => gallery
                    [4] => caption
                )

        )

    [widgets] => 1
)
*/

Пример 3: Поддержка миниатюр постов

$supports = get_theme_support('post-thumbnails');

// Теперь могут быть два варианта
// В зависимости от того, как возможность была зарегистрирована

// Если она была зарегистрирована без параметров:
// add_theme_support( 'post-thumbnails' );
// $supports будет истиной

// Если с параметрами 
// add_theme_support( 'post-thumbnails', array('post', 'page') ); 
// $supports будет равен этому массиву
/*
Array
(
    [0] => Array
        (
            [0] => post
            [1] => page
        )

)
*/

Заметки

  • Это глобальный массив $_wp_theme_features, который содержит информацию о поддерживаемых функциях темы.

Изменения

  • С версии 3.1.0 — функция была введена.
  • С версии 5.3.0 — параметр ...$args был официально добавлен в сигнатуру функции.

Код функции get_theme_support()

function get_theme_support( $feature, ...$args ) {
    global $_wp_theme_features;

    if ( ! isset( $_wp_theme_features[ $feature ] ) ) {
        return false;
    }

    if ( ! $args ) {
        return $_wp_theme_features[ $feature ];
    }

    switch ( $feature ) {
        case 'custom-logo':
        case 'custom-header':
        case 'custom-background':
            if ( isset( $_wp_theme_features[ $feature ][0][ $args[0] ] ) ) {
                return $_wp_theme_features[ $feature ][0][ $args[0] ];
            }
            return false;

        default:
            return $_wp_theme_features[ $feature ];
    }
}

Связанные функции

  • add_theme_support()
  • current_theme_supports()
  • get_header_image()
  • get_header_textcolor()
  • has_header_image()
  • header_image()
  • remove_theme_support()

Теперь вы знаете, как использовать функцию get_theme_support() в WordPress для получения информации о поддержке темы. Эта функция полезна для проверки возможностей вашей темы и их настройки.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *