Я сделал таксономию в Wordpress с пользовательским интерфейсом плагина CPT.Таким образом, я могу добавить «Категории продуктов» в свой тип поста «Продукт».У нас есть родительские категории и дочерние категории.Например:
* Toegangscontroles
- Electronische sloten
- Программное обеспечение
- Wandlezers
* Шпигели
и так далее
Итак, я создал новую страницу "page-products«показать все продукты.Эта страница должна содержать фильтр по категориям товаров.
Я думаю, что эта страница состоит из 2 "петель".Один для фильтра и один для продуктов.
Цикл продукта
<?php $args = array('post_type' => 'product'); ?>
<?php $loop = new WP_Query($args); ?>
<?php if ( $loop->have_posts() ) : while ( $loop->have_posts() ) : $loop->the_post(); ?>
<?php get_template_part( 'loop-templates/content-product' ); ?>
<?php endwhile; ?>
<?php else: ?>
<h1>
<?php
_e('Geen producten gevonden','axces-theme');
?>
</h1>
<?php endif; ?>
<?php wp_reset_postdata(); ?>
Условия // Фильтр *
<?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.'">'.$child->name.'</li>';
}
echo '</ul>';
}
echo '</li>';
}
echo '</ul>';
?>
Но результат этого неверен.Я хочу иметь вложенный список.Примерно так:
<ul>
<li class="parent">Toegangscontroles
<ul>
<li class="child">Software</li>
<li class="child">Wandlezer</li>
</ul>
</li>
<li class="parent">Another parent term
<ul>
<li class="child">child term</li>
<li class="child">child term</li>
</ul>
</li>
</ul>
Итак, подытожил мои проблемы:
- Создайте фильтр на странице page-product.php
- Правильно вложите список
Спасибо!