Здравствуйте!
Занимаюсь натяжкой верстки на Wordpress и столкнулся с задачей, которую не знаю как решить:
Создал custom_post_type (programs) и таксономию (genretax). Теперь хочу вывести на странице archive-programs.php записи в зависимости от указаной для них таксономии. Как на скриншоте:
В верстке используется библиотека MixItUp 3 (для вильтра плиток)
https://www.kunkalabs.com/mixitup/
У меня сейчас выводятся так:
Тоесть посты привязаны к таксономии правильно, но сами таксономии дублируются..
Помогите пожалуйста, уже 3 день вожусь и никак не получается.
Код таксономии:
register_taxonomy( 'genretax', [ 'programs', 'regions' ], [
'label' => '',
'labels' => [
'name' => 'Регионы активности',
'singular_name' => 'Регион активности',
'search_items' => 'Поиск регионов активности',
'all_items' => 'Все Регионы активности',
'view_item ' => 'Просмотр Региона активности',
'parent_item' => 'Parent Регионы активности',
'parent_item_colon' => 'Parent Регионы активности:',
'edit_item' => 'Изменить Регионы активности',
'update_item' => 'Обновить Регионы активности',
'add_new_item' => 'Добавить новый регион активности',
'new_item_name' => 'New Регионы активности Name',
'menu_name' => 'Регионы активности',
],
'description' => '',
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'hierarchical' => true,
'rewrite' => true,
'capabilities' => array(),
'meta_box_cb' => null,
'show_admin_column' => false,
'show_in_rest' => true,
'rest_base' => null,
] );
Код custom_post_type:
register_post_type( 'programs',
array(
'labels' => array(
'name' => esc_html__( 'Программы', ),
'singular_name' => __( 'Программы' ),
),
'public' => true,
'has_archive' => true,
'menu_icon' => 'dashicons-admin-site',
'supports' => array( 'title', 'editor', 'thumbnail' ),
'show_in_rest' => true,
'taxonomies' => array('genretax' ),
)
);
Код вывода таксономии:
<?php
$args = array(
'post_type' => 'programs',
);
$query = new WP_Query( $args );
if ($query->have_posts()) {
while ( $query->have_posts() ) : $query->the_post();
$page_categories = get_the_terms( get_the_ID(), 'genretax' );
if ( $page_categories && ! is_wp_error( $page_categories ) ) {
foreach ( $page_categories as $page_category ) {
?>
<li class="filter" data-filter=".category<?php the_ID(); ?>">
<i>
<img src="<?php echo carbon_get_term_meta($page_category->term_id, 'crb_thumb'); ?>" alt="">
</i>
<?php echo $page_category->name; ?>
</li>
<?php
}
}
?>
<?php endwhile;
}
wp_reset_postdata();
?>
Код вывода постов:
<?php
$args = array(
'post_type' => 'programs',
);
$query = new WP_Query( $args );
if ($query->have_posts()) {
while ( $query->have_posts() ) : $query->the_post(); ?>
<li class="mix category<?php the_ID(); ?>">
<a href="<?php the_permalink(); ?>" class="img_col_item_programs">
<?php echo get_the_post_thumbnail(get_the_ID()); ?>
</a>
<a href="<?php the_permalink(); ?>" class="link_col_item_programs"><?php the_title(); ?></a>
</li>
<?php
endwhile;
}
wp_reset_postdata(); ?>