Я нахожусь на стене здесь, хотя это звучит довольно просто: я хочу вернуть иерархический список пользовательских терминов таксономии типа публикации. Я получаю первый уровень терминов и вложенных uls. Но суб-термины не отображаются. Есть идеи?Wordpress: иерархический список терминов таксономии
Вот код:
function return_terms_index() {
$taxonomies = array(
'taxonomy_name',
);
$args = array(
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => false,
'fields' => 'all',
'parent' => 0,
'hierarchical' => true,
'child_of' => 0,
'pad_counts' => false,
'cache_domain' => 'core'
);
$terms = get_terms($taxonomies, $args);
$return .= '<ul>';
foreach ($terms as $term) {
// return terms (working)
$return .= sprintf(
'<li id="category-%1$s" class="toggle">%2$s <span class="cat-description">%3$s</span>',
$term->term_id,
$term->name,
$term->description
);
$subterms = get_terms(array(
'parent' => $term->term_id,
'hide_empty' => false
));
$return .= '<ul>';
foreach ($subterms as $subterm) {
//return sub terms (not working :()
$return .= sprintf(
'<li id="category-%1$s" class="toggle">%2$s <span class="cat-description">%3$s</span>',
$subterm->term_id,
$subterm->name,
$subterm->description
);
$return .= '</li>'; //end subterms li
}
$return .= '</ul>'; //end subterms ul
$return .= '</li>'; //end terms li
} //end foreach term
$return .= '</ul>';
return $return;
}
Спасибо!
Редактировать: вот выход.
<ul>
<li id="category-176">
1. <span class="post-count">0</span><span class="cat-description" style="display: none;">Description</span>
<ul id="subTerm-176" style="display: block;"></ul>
</li>
<li id="category-49">
2. <span class="post-count">0</span><span class="cat-description" style="display: none;">Langtitel/Beschreibung</span>
<ul id="subTerm-49" style="display: none;"></ul>
</li>
</ul>
Edit: таксономиями возвращаются в иерархическом списке сейчас, YAY! Но я хочу запросить и отобразить сообщения терминов таксономии третьего уровня, и этот бит кода не делает этого трюка.
$post_query = new WP_Query($taxonomies, array(
'term' => $subsubterm->term_id
)); ?>
<?php if ($post_query->have_posts()) :
$return .= '<ul>';
while ($post_query->have_posts()) : $post_query->the_post();
$return .= '<li><a class="link" href="' . get_permalink() . '">' . get_the_title() . '</a></li>' . "\n";
endwhile;
$return .= '</ul>';
wp_reset_postdata();
else:
endif;
Он должен быть динамическим, поэтому я не могу указать термин по имени/слизу. Но возможно ли это?
'term' => $subsubterm->term_id
Еще раз спасибо.
Спасибо за указание, что из! Я реализовал ваш код/пропущенные системы таксономий, но результат остается прежним (см. Отредактированный пост). – george
Код работает отлично. Проверьте на панели администратора. Есть ли у вас подтерм с назначенным постом? –
Работает ли она сейчас или любая ошибка? –