Получить все категории продукта - PullRequest
0 голосов
/ 11 октября 2018

Я хочу показать все категории товара по классу каждого товара.Если товар относится ко многим категориям, он отображает только последнюю категорию во многих категориях товара.Я хочу, чтобы он отображал полные категории.Я использую код ниже:

<?php while ( $query->have_posts() ) : $query->the_post();
    global $product, $post;
    $classes = '';

    $terms_id     = array();
    $item_cats    = get_the_terms( $post->ID, 'product_cat' );
    if ( $item_cats ) :
        foreach ( $item_cats as $item_cat ) {
            $classes = urldecode( $item_cat->slug ) . ' ';
        }
    endif;
    ?>

    <li class="<?php echo esc_attr($classes) ?>">
        <div class="content_product">
        </div>
    </li>
<?php endwhile;

1 Ответ

0 голосов
/ 11 октября 2018

Показывает последнюю категорию, потому что в цикле foreach вы каждый раз переназначаете одну и ту же переменную, а не объединяете ее (или помещаете в массив).

foreach ( $item_cats as $item_cat ) {
        $classes = urldecode( $item_cat->slug ) . ' ';
    }

Вы должны перейти к:

$classes = [];
foreach ( $item_cats as $item_cat ) {
        $classes[] = urldecode( $item_cat->slug ) . ' ';
    }

И

<li class="<?php echo esc_attr(implode(' ', $classes)) ?>">

РЕДАКТИРОВАТЬ: Или просто без какого-либо массива (из-за простой природы того, что должно быть отображено):

foreach ( $item_cats as $item_cat ) {
        $classes .= urldecode( $item_cat->slug ) . ' ';
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...