is_child_theme()
Проверяет используется ли дочерняя тема. Условный тег.
Функция возвращает true, если текущая тема является дочерней, то есть у неё есть родительская тема, на основе которой она построена. В противном случае возвращается false.
Функция сравнивает путь к текущей активной теме (get_template_directory()) с путем к дочерней (get_stylesheet_directory()). Если они отличаются — это дочерняя тема.
Где используется:
- Часто используется, чтобы загружать разные файлы или стили в зависимости от того, используется ли дочерняя тема.
- Может помочь при разработке плагинов или тем, где поведение зависит от наличия дочерней темы.
- Простой способ проверить, переопределена ли тема.
1 раз — 0.00001 сек (скорость света) | 50000 раз — 0.01 сек (скорость света) | PHP 7.0.8, WP 4.6
Хуков нет.
Возвращает
true|false.
trueесли используется дочерняя тема.falseесли родительская.
Использование
if( is_child_theme() ){
// дочерняя тема
}
Примеры
#1 Создадим код для дочерней темы
Допустим мы пишем тему и нам нужно выполнить PHP код, только когда наша тема используется как родительская, т.е. дочерняя тема определена и используется:
if( is_child_theme() ){
echo 'код для дочерней темы, не для родительской';
} #2 Загрузка файлов только из дочерней темы
if ( is_child_theme() ) {
require get_stylesheet_directory() . '/child-functions.php';
} #3 Отображение предупреждения для разработчика
if ( ! is_child_theme() ) {
echo '<div class="notice">Вы не используете дочернюю тему. Изменения могут быть утеряны при обновлении.</div>';
}
Заметки
- Global. Строка.
$wp_stylesheet_pathPath to current theme's stylesheet directory. - Global. Строка.
$wp_template_pathPath to current theme's template directory.
Список изменений
| С версии 3.0.0 | Введена. |
| С версии 6.5.0 | Makes use of global template variables. |
Код is_child_theme() is child theme WP 7.0.4
function is_child_theme() {
global $wp_stylesheet_path, $wp_template_path;
return $wp_stylesheet_path !== $wp_template_path;
}