我在Wordpress网站上有两种自定义帖子类型-位置和事件。位置作为元数据与事件连接(用于排序)。例如:某些事件(事件桩类型)正在伦敦发生(位置桩类型)。
元数据中包含“伦敦”的所有事件都显示在post type Location-London页面上。问题是,事件帖子类型有几个类别,其中一个类别命名为Expired。但显示所有类别的帖子,包括“过期”。我想从帖子列表中隐藏此类别。
位置页上的代码:
$count = 0;
$paged = 1;
if ( get_query_var( \'paged\' ) ) {
$paged = get_query_var( \'paged\' );
}
$args = array(
\'post_type\' => \'event\',
\'paged\' => $paged,
\'meta_query\' => array(
array( \'key\' => \'location\', \'value\' => get_the_ID() ),
),
);
$tmp_query;
global $wp_query;
$the_query = new WP_Query( $args );
$post_ids = array();
if ( $the_query->have_posts() ) :
if ( $template_type == 1) {
while ( $the_query->have_posts() ) :
$the_query->the_post();
echo event();
endwhile;
}
事件类别已命名
event_category, 过期类别的ID-
2136.
最合适的回答,由SO网友:LWS-Mo 整理而成
我想你应该可以用tax_query
在您的$args
.我无法测试这一点,而且我也不知道在一个元数据和税务查询中查询的行为如何。
但我会从测试这样的东西开始:
\'tax_query\' => array(
array(
\'taxonomy\' => \'event_category\', // the used taxonomy
\'field\' => \'term_id\', // use ID or slug
\'terms\' => array( 2136 ), // term ID to exclude
\'operator\' => \'NOT IN\', // "NOT IN" to exclude?, default "IN"
),
),
更多的信息在官方
codex.