Используя WP_Query, я хочу показывать сообщения, связанные с пользовательским термином таксономии

У меня есть пользовательский тип сообщения, называемый событием. Таможенная таксономия называется категориями событий, которая имеет различные термины. Я хочу показать все события, относящиеся к определенному термину таксономии на странице архива.

Я включаю термин пользовательской таксономии ошибочно, поскольку он отображает все события, а не только те, которые классифицируются в терминах пользовательской таксономии. Он отображает только события, которые в будущем, которые я хочу.

<?php $term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); $termst = $term->slug; $current_date = date('Ym-d'); //Get the current date in the same format as date fields normally store in db $args = array( 'post_type' => 'event', 'posts_per_page' => 4, // Number of event posts you want to query 'meta_key' => '_event_start_date', 'orderby' => '_event_start_date', 'order' => 'ASC', // Order posts starting with the closest date to current date 'tax_query' => array( 'taxonomy' => 'event-categories', 'field' => 'slug', 'term' => $termst ), 'meta_query' => array( array( 'key' => '_event_start_date', 'value' => $current_date, 'compare' => '>=', //Compare $current_date with _event_start_date and show only the post with a date after or equal $current_date 'type' => 'DATE', ), ) ); $query = new WP_Query( $args ); if($query ->have_posts()) : while($query ->have_posts()) : $query ->the_post(); ?> <h1><?php the_title() ?></h1> <?php echo ' - '. get_post_meta($id, '_event_start_date', true) ?> <?php endwhile; else: ?> Oops, there are no posts. <?php endif;?> 

Как я могу включить текущий термин таксономии здесь, чтобы он показывал только события, которые были назначены определенному термину? Спасибо!

ОБНОВЛЕНО: я изменил свой код на рекомендацию, но теперь он говорит Oops, there are no posts. , Может кто-нибудь взглянуть и сказать мне, что не так, пожалуйста? Есть сообщения.

 <?php $term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); $termst = $term->slug; $current_date = date('Ym-d'); //Get the current date in the same format as date fields normally store in db $args = array( 'post_type' => 'event', 'posts_per_page' => 4, // Number of event posts you want to query 'meta_key' => '_event_start_date', 'orderby' => '_event_start_date', 'order' => 'ASC', // Order posts starting with the closest date to current date 'tax_query' => array( // second array array( 'taxonomy' => 'event-categories', 'field' => 'slug', 'term' => $termst ) // end second array ), 'meta_query' => array( array( 'key' => '_event_start_date', 'value' => $current_date, 'compare' => '>=', //Compare $current_date with _event_start_date and show only the post with a date after or equal $current_date 'type' => 'DATE', ), ) ); $query = new WP_Query( $args ); if($query ->have_posts()) : while($query ->have_posts()) : $query ->the_post(); ?> <h1><?php the_title() ?></h1> <?php echo ' - '. get_post_meta($id, '_event_start_date', true) ?> <?php endwhile; else: ?> Oops, there are no posts. <?php endif;?> 

Solutions Collecting From Web of "Используя WP_Query, я хочу показывать сообщения, связанные с пользовательским термином таксономии"

Ваш налоговый запрос должен быть массивом массивов.

Важное примечание: tax_query принимает массив массивов массивов налоговых запросов (он принимает массив массивов). Эта конструкция позволяет запрашивать несколько таксономий, используя параметр отношения в первом (внешнем) массиве для описания логических отношений между массивами таксономии.

https://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters

 'tax_query' => array( // second array array( 'taxonomy' => 'event-categories', 'field' => 'slug', 'terms' => $termst ) // end second array ), 

Во-вторых, «ключ» – это term не имеющий term как у вас есть.