Функция current_theme_supports() проверяет, поддерживает ли текущая активная тема указанную возможность (feature), зарегистрированную через add_theme_support(). Эта функция полезна для определения, какие возможности или функции поддерживаются темой, чтобы изменить поведение сайта в зависимости от этого.
current_theme_supports( string $feature, mixed $args ): bool
Параметры
$feature(строка, обязательный) — Название возможности, которую нужно проверить. Например, это может быть'custom-logo','custom-header','post-thumbnails', и т.д. Полный список возможных значений смотрите в документацииadd_theme_support().$args(необязательный) — Дополнительные аргументы, которые нужно проверить для некоторых возможностей (например, для HTML5).
Возвращаемое значение
Функция возвращает true, если активная тема поддерживает указанную возможность, и false — если не поддерживает.
Пример 1: Проверка поддержки логотипа
Этот пример проверяет, поддерживает ли текущая тема возможность настройки логотипа:
if ( current_theme_supports( 'custom-logo' ) ) {
// Тема поддерживает пользовательский логотип.
echo "Эта тема поддерживает пользовательский логотип.";
}
Пример 2: Проверка поддержки HTML5 для формы комментариев
if ( current_theme_supports( 'html5', 'comment-form' ) ) {
// Тема поддерживает HTML5 для формы комментариев.
echo "Эта тема поддерживает HTML5 для формы комментариев.";
}
Пример 3: Проверка поддержки кастомного заголовка
Этот пример проверяет, поддерживает ли тема возможность использования кастомного заголовка:
if ( current_theme_supports( 'custom-header' ) ) {
// Выполняем что-то, если тема поддерживает кастомный заголовок.
echo "Эта тема поддерживает кастомные заголовки.";
}
Пример 4: Проверка поддержки миниатюр для записей (thumbnails)
Если нужно проверить, поддерживает ли тема возможность использования миниатюр для записей:
if ( current_theme_supports( 'post-thumbnails' ) ) {
// Тема поддерживает миниатюры для записей.
echo "Тема поддерживает миниатюры для записей.";
}
Пример 5: Проверка нескольких возможностей
Можно также использовать эту функцию для проверки нескольких возможностей:
if ( current_theme_supports( 'custom-logo' ) && current_theme_supports( 'menus' ) ) {
// Тема поддерживает как пользовательский логотип, так и меню.
echo "Тема поддерживает логотип и меню.";
}
Полезные хуки
Функция вызывает хук current_theme_supports-(feature), который можно использовать для выполнения определённых действий при проверке поддержки конкретных возможностей.
Пример:
add_action( 'current_theme_supports-custom-logo', function() {
// Действие выполняется, когда проверяется поддержка 'custom-logo'.
echo "Проверяется поддержка пользовательского логотипа.";
});
Список возможностей, поддерживаемых темами
Некоторые из наиболее часто используемых возможностей, которые можно проверять через current_theme_supports():
custom-logo— поддержка пользовательского логотипа.custom-header— поддержка кастомного заголовка.custom-background— поддержка кастомного фона.post-thumbnails— поддержка миниатюр для записей.automatic-feed-links— автоматические ссылки на RSS ленты.html5— поддержка HTML5 (например, для форм комментариев, галерей и т.д.).post-formats— поддержка форматов записей.menus— поддержка пользовательских меню.editor-style— поддержка стилей редактора.widgets— поддержка виджетов.
Для более полного списка возможностей, используемых темами, можно обратиться к документации функции add_theme_support().
Заключение
Функция current_theme_supports() помогает легко проверять наличие поддерживаемых возможностей текущей темы и настраивать поведение сайта в зависимости от этих возможностей. Это мощный инструмент для разработчиков тем WordPress, позволяющий делать темы более гибкими и совместимыми с различными возможностями системы.