is_child_theme()WP 3.0.0

Проверяет используется ли дочерняя тема. Условный тег.

Функция возвращает 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

#1 Создадим код для дочерней темы

Допустим мы пишем тему и нам нужно выполнить PHP код, только когда наша тема используется как родительская, т.е. дочерняя тема определена и используется:

if( is_child_theme() ){
	echo 'код для дочерней темы, не для родительской';
}
0

#2 Загрузка файлов только из дочерней темы

if ( is_child_theme() ) {
	require get_stylesheet_directory() . '/child-functions.php';
}
0

#3 Отображение предупреждения для разработчика

if ( ! is_child_theme() ) {
	echo '<div class="notice">Вы не используете дочернюю тему. Изменения могут быть утеряны при обновлении.</div>';
}

Заметки

  • Global. Строка. $wp_stylesheet_path Path to current theme's stylesheet directory.
  • Global. Строка. $wp_template_path Path to current theme's template directory.

Список изменений

С версии 3.0.0 Введена.
С версии 6.5.0 Makes use of global template variables.

Код 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;
}