Intereting Posts
Функция отображения персонализированного типа сообщения на первой странице делает пункты меню dissapear Пользовательская тема: как вызвать archive-post.php для просмотра сообщений в блоге Добавление пользовательских форм Сделать WordPress больше похожим на Jekyll (используя пакет wp-cli?) post параметр 'name' 404 error Как создать несколько разных ролей администратора с их собственными возможностями Показать уведомление о приятеле в интерфейсе Последние сообщения и первые WordPress Использовать кеширование браузеров Показать, как исправить и устранить блокировку визуализации JavaScript и CSS в вышеприведенном содержании Показать, как исправить Поделитесь плагинами, темами и несколькими сообщениями в многодоменной сети Пейджинговые комментарии не показывают Реализация wp json-rest api Расширенные шаблоны / WordPress как вопросы CMS Какие параметры многостраничного WordPress управляют URL-адресами сетевого администратора? Удалить существующего автора. Пользователь Frontend во время удаления настраиваемого типа сообщения

Покажите только внукам (используя 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 );