Intereting Posts

Покажите только внукам (используя get_terms)

Я работаю с иерархической таксономией (названной «мир»), которая имеет 3 уровня ( Regions > Countries > Indigenous Peoples ). На данный момент я использую модифицированную версию этого кода для разбивки всех результатов на одну страницу.

Вот важная часть

 $page = ( get_query_var('paged') ) ? get_query_var( 'paged' ) : 1; // number of tags to show per-page $per_page = 24; $offset = ( $page-1 ) * $per_page; $args = array( 'number' => $per_page, 'offset' => $offset, 'hide_empty' => 1,'hierarchical ' => true ); 

а также

 $taxonomy = 'world'; $tax_terms = get_terms( $taxonomy, $args ); 

Как и ожидалось, это возвращает разбитый список всех терминов, связанных с моей таксономией. Проблема в том, что мне действительно нужно показать внуков, в данном случае "Indigenous Peoples" .

Я соблазняюсь сделать это вручную, но я бы предпочел не показывать список из 450 + терминов, чтобы включить (или 80 терминов для исключения), если это абсолютно необходимо.

Ваша помощь будет оценена по достоинству.

Solutions Collecting From Web of "Покажите только внукам (используя get_terms)"

Я думаю, что для каждого термина вы должны проверить, что он имеет родителя, но не имеет никакого childern

Таким образом, код может выглядеть так:

  $taxonomy = 'world'; $tax_terms = get_terms( $taxonomy ); foreach ($tax_terms as $value){ $args=array( 'child_of'=> $value->term_id, ); //get all child of current term $child = get_terms( $taxonomy, $args ); if( $value->parent != '0' && count($child) =='0'){ echo $value->slug; echo '<br/>'; //do something because it's your lowest level term which have parent but not have any childern } } 

Почему бы вам не использовать « parent » параметр get_terms

 $page = ( get_query_var('paged') ) ? get_query_var( 'paged' ) : 1; // number of tags to show per-page $per_page = 24; $offset = ( $page-1 ) * $per_page; $args = array( 'number' => $per_page, 'offset' => $offset, 'hide_empty' => 1,'hierarchical ' => true, 'parent'=>'term_id of Indigenous Peoples or whatever parent's child you want.' ); $taxonomy = 'world'; $tax_terms = get_terms( $taxonomy, $args );