Term_is_ancestor_of() - функция WordPress, условный тег

Опубликовано: 09.10.2017

Одним словом функция возвращает true, если первый указанный элемент таксономии $term1 является родительским для второго указанного элемента $term2 (не важно, на каком уровне вложенности он находится), если же это условие не выполняется, данный условный тег возвращает false.

term_is_ancestor_of ( $term1 , $term2 , $taxonomy )
$term1 (целое число|объект) ID или объект родительского элемента таксономии, $term2 (целое число|объект) ID или объект дочернего элемента, $taxonomy (строка) название таксономии, которой принадлежат указанные элементы;

Пример

Пример для рубрик, кстати, для них есть отдельная функция cat_is_ancestor_of() .

if ( term_is_ancestor_of ( 1 , 4 , 'category' ) ) { echo 'Рубрика с ID = 4 является дочерней для рубрики с ID = 1' ; }

Как известно, у меток post_tag нет иерархии (если только вы не модифицировали эту таксономию), а следовательно нет родительских и дочерних элементов, поэтому рассмотрим какую-нибудь произвольную таксономию, например product_cat (буду для удобства называть элементы этой таксономии категориями).

Суть следующего примера в том, чтобы выводить описание категории только для тех элементов, которые не являются дочерними элемента с ID = 4.

// заданный родительский элемент $term1_id = 4 ;   // теперь нам нужно вытащить ID или объект текущей категории $term2_obj = get_term_by ( 'slug' , get_query_var ( 'term' ) , 'product_cat' ) ;   if ( !term_is_ancestor_of ( $term1_id , $term2_obj , 'product_cat' ) ) { term_description ( $term2_obj -> term_id , 'product_cat' ) ; // выводим описание }

Все приведенные в примере функции и их описания вы найдете в документации WordPress на моем сайте.

Впервые познакомился с WordPress в 2009 году, и после двух лет мучений с Joomla и самописными движками это был просто бальзам на душу. С 2014 года меня можно встретить на WordCamp — официальной конфе по WP в Москве, иногда там выступаю. Также в настоящее время веду курсы по WordPress в Epic Skills в Питере.

rss