iborisbelov
@iborisbelov
Веб-дизайнер, UX\UI

Как в wordpress вывести term 3 уровня и без повторов?

Доброго времени суток.
Перепробовал куча разных способов но так и не вышло
Дано:
Надо вывести все term 3 уровня вложенности (в которых есть посты). Но чтобы они не повторялись.
Есть:
eee1a4e44b.png
Код:
<? 
$args = array(  'post_type' => 'novosti',	'taxonomy' => 'brands', );
$args_brands = array(	'orderby' => 'name',	'hide_empty' => 1, 'depth' => 2,);
$categories = get_terms('brands', $args_brands ); if($categories){ foreach ($categories as $cat){ 
$termID = $cat->term_id; 
$taxonomyName = "brands";
$termchildren = get_term_children( $termID, $taxonomyName ); foreach ($termchildren as $child) {	$term = get_term_by( 'id', $child, $taxonomyName ); ?> 
	<li><label><input value=".<?php echo $term->slug; ?>" type="checkbox"><span><?php echo $term->name; ?></span></label></li>
<? } ?>
<? } } ?>


Нужно вывести только
  • Lebron
  • Air force
  • Hyperdunk
  • Hyperfuse
  • Kobe
  • Kyrie


---

Нашел следующую статью https://ru.stackoverflow.com/questions/604477/%D0%...
Как мне совместить ?
  • Вопрос задан
  • 117 просмотров
Решения вопроса 1
iborisbelov
@iborisbelov Автор вопроса
Веб-дизайнер, UX\UI
Кому будет интересно как получить term 3 уровня

<? $args = array(  'post_type' => 'novosti',	'taxonomy' => 'brands', );
$args_brands = array(	'orderby' => 'name',	'hide_empty' => 1 );
$all_categories = get_terms('brands', $args_brands );
$third_level = array_filter($all_categories, function ($t) {  return $t->parent != 0 && get_term($t->parent, 'brands')->parent != 0;});
$third_level_ids = array_map(function ($t) {  return $t->term_id;}, $third_level); 
if($third_level){ foreach ($third_level as $third_lev){ ?>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы