cat_is_ancestor_of()
Проверяет, является ли указанная рубрика дочерней к другой указанной рубрике (проверяются все уровни вложенности). Условный тег.
Заметки
-
Функция будет работать, только если категория указанная в параметре
$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
.
Примеры
#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() cat is ancestor of WP 6.7.1
function cat_is_ancestor_of( $cat1, $cat2 ) { return term_is_ancestor_of( $cat1, $cat2, 'category' ); }