Получить дочернюю категорию таксономии по родительскому идентификатору

У меня есть пользовательский тип сообщения «проект» с таксономией «taxoproject», и у меня есть страница шаблона «template-project.php» с циклом запросов для отображения моего сообщения.

В этом цикле мне нужно отобразить каждую категорию, связанную с сообщением.

Это мой код:

<ul>
   <?php
     $terms = get_the_terms($post->ID, 'taxoproject');
     foreach($terms as $term) { ?>

         <li>
            <?php echo $term->name; ?>
         </li>

     <?php }
   ?>
</ul>

Мой код работает отлично, за одним исключением: я хочу отображать только дочерние элементы определенного родителя этой таксономии (id 76), и я не знаю, что делать дальше.

Спасибо за вашу помощь


person Freya    schedule 12.08.2019    source источник


Ответы (3)


Я нашел решение своей проблемы:

<ul>
    <?php
        $taxonomy = 'taxoproject'; // Taxonomy slug.
        $terms = get_the_terms( $post->ID, $taxonomy );

        $children = '';

        foreach ( $terms as $term ) {
            if( $term -> parent == 76 ) { // Parent ID 
                $children = $term->name; ?>

                <li><?php echo $children; ?></li>

            <?php } 
        }
    ?>
</ul>

Спасибо всем за помощь !

person Freya    schedule 12.08.2019

Может этот код вам подойдет

<ul>
   <?php
     $parent = get_terms( array( 'taxonomy' => 'taxoproject', 'hide_empty' => 1, 'parent' => 76 ) );
     foreach($parent as $term) { ?>

         <li>
            <?php echo $term->name; ?>
         </li>

     <?php }
?>
</ul>
person IncipientInfo    schedule 12.08.2019
comment
Спасибо за помощь ! У меня ошибка: Пытаюсь получить имя свойства не-объекта. Знаете ли вы, откуда оно может взяться? - person Freya; 12.08.2019
comment
Я обновил свой код, попробуйте заменить его. - person IncipientInfo; 12.08.2019
comment
Пожалуйста, напечатайте родительскую переменную перед foreach, используя следующий синтаксис: print_r($parent); дайте мне знать, каков результат - person IncipientInfo; 12.08.2019
comment
Мой плохой код работает, но он возвращает всех дочерних элементов от родителя, а не тот, который выбран в другом сообщении. - person Freya; 12.08.2019

person    schedule
comment
Спасибо за ваш ответ, но у меня это совсем не работает, где я могу указать свой родительский идентификатор, чтобы показать конкретных детей, которых я хочу? - person Freya; 12.08.2019
comment
Извините, я не понимаю ваш код. С помощью моего кода я получаю всех дочерних элементов родителей моей таксономии, но почему я хочу, чтобы это были дочерние элементы определенного родителя (я думаю, что с параметром ID это сработает, но я не знаю, как) - person Freya; 12.08.2019
comment
$taxonomies = array('taxoproject','post_tags','my-tax'); $args = массив( 'hide_empty' =› 0 ); $terms = get_terms($taxonomies, $args); - person Wordpress Dev; 12.08.2019