Я использую циклы foreach, чтобы плагин jPlist для wordpress jQuery работал с моим archive.php
Более конкретно, я использую его для создания фильтров-флажков, чтобы пользователи могли фильтровать. Для этого я должен назначить классы для span, которые соответствуют коду плагинов, чтобы фильтры работали.
Я получил следующий код, так что WordPress автоматически назначит «категорию транспортного средства» (это пользовательская таксономия, которую можно назначить на экране редактирования пользовательского типа сообщения) классу span:
<span class="vehicle-categories hidden CB-<?php $terms = get_the_terms( $post->ID , 'vehicle_categories' ); foreach ( $terms as $term ) { echo $term->slug; } ?>"></span>
Он отлично работает и добавляет классы, такие как CB-main-battle-tank
на пролет.
Nextup настраивает код для плагина:
<!-- Vehicle Categories -->
<ul
class="jplist-group"data-control-type="checkbox-group-filter"data-control-action="filter"data-control-name="vehicle-categories">
<?php $args = array(
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => 1,
'taxonomy' => 'vehicle_categories'
);
$categories = get_categories($args);
foreach ($categories as $cat) {
echo '<li class="checkboxListitem-jPlist">';
echo '<input data-path=".CB-'.$cat->slug.'" id="'.$cat->slug.'" type="checkbox"/>';
echo '<label for="'.$cat->slug.'">'.$cat->name.'</label>';
echo '</li>';}
?>
</ul>
Этот цикл foreach заставляет jPlist распознавать категорию транспортного средства и заставляет фильтры работать.
Он создает следующие фильтры: (приведенный выше код представляет собой столбец фильтров)
Так что все отлично работает! НО проблема в том, что когда я добавляю два или более значений в таксономию публикации, это происходит с категориями продуктов. текущий пост выводит следующий код в этой ситуации CB-diorama-accessoiresstowage-sets
и мне нужно, чтобы это было CB-diorama-accessoires CB-stowage-sets
Так что этот код нужно изменить, но как?
<span class="vehicle-categories hidden CB-<?php $terms = get_the_terms( $post->ID , 'vehicle_categories' ); foreach ( $terms as $term ) { echo $term->slug; } ?>"></span>
Задача ещё не решена.
Других решений пока нет …