Я сделал пользовательский термин 'product_categorie'.Может быть неограниченный родитель с дочерними терминами.
Пример:
- Parent 1
- child 1
- child 2
- child 3
- Parent 2
- child 2.1
- child 2.2
Я хочу добиться этого HTML:
<ul class="filter">
<li class="parent">
<strong class="parent__item">Parent 1</strong>
<ul class="childs">
<li class="child" data-filter="child-1"><a href="#">Child 1</a></li>
<li class="child" data-filter="child-2"><a href="#">Child 2</a></li>
</ul>
</li>
<li class="parent">
<strong class="parent__item">Parent 2</strong>
<ul class="childs">
<li class="child" data-filter="child-21"><a href="#">Child 2.1</a></li>
<li class="child" data-filter="child-22"><a href="#">Child 2.2</a></li>
</ul>
</li>
</ul>
У меня есть этот код прямо сейчас, но этотbreaks div следующий div:
<?php
$args = array('hide_empty' => false, 'orderby' => 'term_group', 'parent' => false);
$terms = get_terms('product_categorie', $args);
$hierarchy = _get_term_hierarchy('product_categorie');
echo '<ul class="filter">';
foreach ($terms as $term) {
echo '<li class="parent"><strong class="parent__item">'.$term->name.'</strong>';
if (array_key_exists($term->term_id, $hierarchy)) {
echo '<ul class="childs">';
foreach ($hierarchy[$term->term_id] as $v) {
$child = get_term($v);
echo '<li class="child" data-filter="'.$child->slug.'"><a href="'. get_term_link($child) .'">'.$child->name.'</a></li>';
}
echo '</ul>';
}
echo '</li>';
}
echo '</ul>';
?>
После некоторого дополнительного тестирования кажется, что get_term_link ($ child) вызывает проблему.Когда я удаляю этот кусок кода, все остальное работает.