Как вывести посты сгруппировав их по двум кастомным таксономиям?

Столкнулся с проблемой: Есть custom post type (courses) и есть две кастомные таксономии (courses_format и courses_group). На странице архива курсов я вывожу ссылку на taxonomy-courses_group.php:

<?php $terms = get_terms('courses_group');
        foreach($terms as $term){ 
            $term_link = get_term_link($term->term_id, 'courses_group');
            ?>
            <div class="seminars__item">
                <a href="<?php echo $term_link ?>" class="hp-seminar course-archive seminar">
                    <div>
                        <picture>
                            <img src="<?php echo carbon_get_term_meta($term->term_id, 'crb_thumb'); ?>" class="img-responsive sub_tax_crop" alt="Alt">
                        </picture>
                        <div class="title"><?php echo $term->name; ?></div>
                        <span class="ico-book"><i></i><span>Подробнее</span></span>
                    </div>
                </a>
            </div>
      <?php } ?>

То есть, при переходе на страницу taxonomy-courses_group.php я получаю список курсов, определенной групы (courses_group): введите сюда описание изображения

Но мне по мимо этого, нужно эти курсы отсортировать и по таксономии courses_format (там 2 варианта: онлайн курс и очный курс). Не могу разобраться, как мне на странице taxonomy-courses_group.php сортировать курсы ещё и по другой таксономии: courses_format ? У меня получается либо по одной таксономии сортировка либо по другой.. Код taxonomy-courses_group.php:

<?php
    $term_ochnye = get_term_by('slug', 'ochnye', 'courses_format');
    $term_online = get_term_by('slug', 'onlajn', 'courses_format');
    ?>
    <div class="seminar-tabs">
        <div class="seminar-tabs__item">
            <a href="#" class="onlineTab tab activetabs onlineTab-active-item" data-toggle-target=".tab-content-1">Онлайн курсы</a>
        </div>
        <div class="seminar-tabs__item">
            <a href="#" class="onlineTab tab" data-toggle-target=".tab-content-2">Очные курсы</a>
        </div>
    </div>

    <div class="onlineCursy tab-content tab-content-1 activetabs">
        <div class="onlineCursy__container">

            <?php

            $terms_group = get_terms('courses_group');
            foreach($terms_group as $term_g){ 
                $term_link = get_term_link($term_g->term_id, 'courses_group');

            $head = new WP_Query(array(
                    'post_type' => 'courses',
                    'tax_query' => array(
                    'relation' => 'AND',
                        array(
                            'taxonomy' => 'courses_format',
                            'field'    => 'id',
                            'terms'    => $term_online,
                        ),
                        array(
                            'taxonomy' => 'courses_group',
                            'field'    => 'id',
                            'terms'    => $term_g->term_id,
                        ),
                    ),
                    'post__not_in' => array ($post->ID),
                )
            ) ?>
            <?php if ( $head->have_posts() ) : ?>
                <?php $firstPosts = array(); ?>
                <?php while ( $head->have_posts() ) : $head->the_post(); ?>
                    <?php $firstPosts[] = $post->ID; ?>

                    <div class="onlineCursy__item">
                        Здесь вывод для онлайн курсов..
                    </div>

                <?php endwhile; ?>
            <?php else: ?>
            <?php endif; wp_reset_postdata(); ?>
            <?php } ?>

        </div>
    </div>

   <div class="ochnieCursy tab-content tab-content-2">
        <div class="onlineCursy__container">

            <?php

            $head = new WP_Query(array(
                    'post_type' => 'courses',
                    'tax_query' => array(
                    'relation' => 'AND',
                        array(
                            'taxonomy' => 'courses_format',
                            'field'    => 'id',
                            'terms'    => $term_ochnye,
                        ),
                        array(
                            'taxonomy' => 'courses_group',
                            'field'    => 'id',
                            'terms'    =>$term_g->term_id,
                        ),
                    ),
                    'post__not_in' => array ($post->ID),
                )

            ) ?>
            <?php if ( $head->have_posts() ) : ?>
                <?php $firstPosts = array(); ?>
                <?php while ( $head->have_posts() ) : $head->the_post(); ?>
                    <?php $firstPosts[] = $post->ID; ?>

                     Здесь вывод для очных курсов, аналогично как выше для онлайн курсов..

                <?php endwhile; ?>
            <?php else: ?>
            <?php endif; wp_reset_postdata(); ?>

        </div>
    </div>

На даном этапе срабатывает группирование по таксономии courses_format, а courses_group сортирует некорректно. Если кто то сталкивался с подобным, прошу помощи, буду очень благодарен.


Ответы (0 шт):