Функция 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, позволяющий делать темы более гибкими и совместимыми с различными возможностями системы.