如何在WordPress中隐藏特定自定义类别的帖子?

时间:2018-08-15 作者:julietta2801

我在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.

1 个回复
最合适的回答,由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.

结束