Отображение подкатегорий и их данных таксономии


Я хочу вывести сведения о подкатегориях таксономии

$getTerms = get_terms($taxonomy, $args);
print_r($getTerms);

Когда я распечатываю вышеприведенное, оно возвращает объект. Но нет никакой разницы в значениях между родительскими и подкатегориями. Первая - это родительская таксономия, а вторая - подкатегория.

[1] => stdClass Object
    (
        [term_id] => 23
        [name] => Corporate teams
        [slug] => corporate-teams
        [term_group] => 0
        [term_taxonomy_id] => 23
        [taxonomy] => team_names
        [description] => Description of corporate team
        [parent] => 0
        [count] => 0
        [image_id] => 0
    )

[3] => stdClass Object
    (
        [term_id] => 25
        [name] => Team name 1
        [slug] => team-name-1
        [term_group] => 0
        [term_taxonomy_id] => 25
        [taxonomy] => team_names
        [description] => Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin nec pellentesque sapien.
        [parent] => 22
        [count] => 1
        [image_id] => 90
    )

Как бы я запросил часть этого объекта (вероятно, как foreach или как WP_Query), Чтобы он возвращал подкатегории и их релевантные значения (заголовок, изображение и т. Д.)? Является ли функция 'get_terms()' правильный путь для этого?

Author: sledgeweight, 2015-01-30

3 answers

Вы можете использовать аргумент parent в get_terms(), чтобы получить прямых потомков термина. Вы можете использовать аргумент child_of, чтобы получить всех потомков термина.

Что-то вроде этого.

$parent_id = 32;
$args = array(
    'parent' => $parent_id
);
$terms = get_terms( $taxonomy, $args );   
print_r( $terms );

Если вы хотите программно получить родительские термины и в цикле получить подкатегории, вы могли бы сделать что-то вроде этого.

$taxonomy = 'your_tax';
$args = array(
    'parent' => 0 // to get only parent terms
);
$terms = get_terms( $taxonomy, $args );

foreach( $terms as $term ) {
    $children = get_terms( $taxonomy, array(
        'parent' => $term->term_id;
    ) );

    print_r( $children );
}

Http://codex.wordpress.org/Function_Reference/get_terms

 2
Author: Duane, 2015-01-30 12:27:14

Начиная с wordpress 4.5.0, таксономии должны передаваться через аргумент "таксономия" в массиве $args:

$parent_id = 32;
$args = array(
    'taxonomy' => $taxonomy,
    'parent' => $parent_id
);
$terms = get_terms( $args );   
print_r( $terms );

Get_terms в официальном документе

 0
Author: ZalemCitizen, 2017-08-10 07:24:04
<div class="categories-item">
  <?php 
  $wcatTerms = get_terms('service_cat', array('hide_empty' => 0, 'parent' =>0)); 

  foreach($wcatTerms as $wcatTerm) :

  ?>
    <button class="accordion"><?php echo $wcatTerm->name; ?></button>
    <div class="panel">
     <?php 
  $wcatTerms1 = get_terms('service_cat', array('hide_empty' => 0, 'parent' =>$wcatTerm->term_id)); 
  foreach($wcatTerms1 as $wcatTerm1) :
     ?>
      <a href="<?php echo get_term_link( $wcatTerm1->slug, $wcatTerm1->taxonomy ); ?>"><?php echo $wcatTerm1->name; ?></a>
      <?php endforeach ;  ?>
    </div>
   <?php endforeach ;  ?>


    <!-- <button class="accordion">Section 3</button>
    <div class="panel">

    </div> -->

</div>
 0
Author: Purnendu Sarkar, 2018-11-01 10:40:26