cat_is_ancestor_of()WP 2.1.0

Проверяет, является ли указанная рубрика дочерней к другой указанной рубрике (проверяются все уровни вложенности). Условный тег.

Заметки

  • Функция будет работать, только если категория указанная в параметре $cat2 будет вложенной в категорию $cat1.

  • Результат true будет возвращен даже если $cat2 вложена в $cat1 через несколько категорий (многоуровневая проверка вложенности).

  • В параметры следует передавать именно число или объект. Например если передать число в виде строки '4', функция вернет false даже если категории родственные.
Работает на основе: term_is_ancestor_of()
1 раз — 0.000757 сек (медленно) | 50000 раз — 1.05 сек (быстро) | PHP 7.0.5, WP 4.5.1

Хуков нет.

Возвращает

true|false.

  • true — когда $cat1 родственная категория к категории $cat2.
  • false — когда не родственная.

Использование

cat_is_ancestor_of( $cat1, $cat2 );
$cat1(число/объект) (обязательный)
ID родительской категории. Категории, которая должна быть родительской к категории указанной в параметре $cat2.
$cat2(число/объект) (обязательный)
ID дочерней категории любого уровня. Категории, которая должна быть дочерней категорией к категории указанной в параметре $cat1.

Примеры

0

#1 Nav Menu только для категории с ID 4

Это пример, который можно использовать на странице категорий, для того чтобы вывести навигационное меню wp_nav_menu() только для категории с ID 4 или категорий вложенных в эту категорию.

// если это категория 4 или её под-категория
if( cat_is_ancestor_of( 4, $cat ) || is_category( 4 ) ){
	  wp_nav_menu( [ 'menu' => 'Music' ] );
}

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

С версии 2.1.0 Введена.

Код cat_is_ancestor_of() WP 6.4.3

function cat_is_ancestor_of( $cat1, $cat2 ) {
	return term_is_ancestor_of( $cat1, $cat2, 'category' );
}