Как проверить, принадлежит ли сообщение подкатегории категории таксономии в WordPress - PullRequest
0 голосов
/ 28 июня 2018

Моя цель состоит в том, чтобы отображать условное содержимое на странице архива в Wordpress в зависимости от того, принадлежит ли сообщение к основной категории пользовательской таксономии и любым подкатегориям определенной категории таксономии. Я знаю, как этого добиться для категорий простых сообщений и дочерних подкатегорий.

if (is_category('dogs') || cat_is_ancestor_of('dogs', get_query_var( 'cat' )) { echo 'Successs';

Первая часть отлично работает

is_tax('advert_category', 380) ) ||

но как проверить, принадлежит ли сообщение подкатегории категории таксономии 380?

1 Ответ

0 голосов
/ 28 июня 2018

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

Вы должны использовать has_term(), который делает именно это - он проверяет, есть ли у поста определенный термин.

Когда мы начинаем искать термины, нам становится доступна функция get_term_children:

<?php
$term_id = 380;
$taxonomy_name = 'advert_category';
$term_children = get_term_children( $term_id, $taxonomy_name );

echo '<ul>';
foreach ( $term_children as $child ) {
    $term = get_term_by( 'id', $child, $taxonomy_name );
    echo '<li><a href="' . get_term_link( $child, $taxonomy_name ) . '">' . $term->name . '</a></li>';
}
echo '</ul>';
?> 

Надеюсь, это поможет!

...