Здравствуйте!
Столкнулся с проблемой:
Есть 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>
Сейчас сортировка работает некорректно, судя по полотну, которое у меня в результате получилось, наверное и не удивительно..
Код и скрины прикрепил.
Если кто то сталкивался с подобным, прошу помощи, буду очень благодарен.