Функция wp_is_block_theme()
в WordPress используется для определения, является ли активная тема блочной (то есть созданной с использованием редактора блоков Гутенберг). Это важная проверка для разработчиков тем и плагинов, которые хотят адаптироваться к различным типам тем и предоставить соответствующий функционал.
wp_is_block_theme(): bool
Возвращаемое значение
Функция возвращает true
, если активная тема является блочной, и false
, если это не так.
Как работает функция
Чтобы определить, является ли тема блочной, wp_is_block_theme()
проверяет наличие следующих файлов относительно корня темы:
/block-templates/index.html
/templates/index.html
Если хотя бы один из этих файлов существует, тема считается блочной. С версии 5.9 в WordPress появилась возможность создавать шаблоны тем, полностью состоящие из блоков.
Пример 1: Проверка, является ли текущая тема блочной
Вот простой пример того, как использовать wp_is_block_theme()
для проверки, является ли активная тема блочной:
if ( wp_is_block_theme() ) {
echo "Текущая тема блочная.";
} else {
echo "Текущая тема не является блочной.";
}
Этот код выводит сообщение, сообщающее пользователю, блочная ли текущая тема.
Пример 2: Условная загрузка стилей или скриптов
Вы также можете использовать эту функцию для условной загрузки стилей или скриптов в зависимости от того, является ли тема блочной. Например:
function my_theme_enqueue_scripts() {
if ( wp_is_block_theme() ) {
// Загрузить стили для блочной темы
wp_enqueue_style( 'block-theme-style', get_template_directory_uri() . '/block-style.css' );
} else {
// Загрузить стили для классической темы
wp_enqueue_style( 'classic-theme-style', get_template_directory_uri() . '/classic-style.css' );
}
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_scripts' );
В этом примере, в зависимости от типа темы, будут загружаться разные файлы стилей.
Пример 3: Адаптация шаблонов
Вы можете использовать wp_is_block_theme()
для адаптации шаблонов вашей темы. Например, если вы хотите отобразить разные шаблоны для блочных и классических тем, вы можете сделать это следующим образом:
if ( wp_is_block_theme() ) {
// Включить шаблон для блочной темы
get_template_part( 'template-parts/block-template' );
} else {
// Включить шаблон для классической темы
get_template_part( 'template-parts/classic-template' );
}
Этот код позволяет гибко управлять выводом контента в зависимости от типа темы.
Заключение
Функция wp_is_block_theme()
является полезным инструментом для разработчиков тем и плагинов, позволяя легко определять, является ли активная тема блочной. Это позволяет адаптировать функциональность и пользовательский интерфейс в зависимости от типа темы, что значительно улучшает опыт пользователей и разработчиков.