WordPress通过元值排除归档中的帖子

时间:2013-09-30 22:44:50

标签: php wordpress custom-post-type

我在WordPress中设置了一个自定义存档页面,用于显示我的自定义帖子。我想排除具有特定元值的自定义帖子(例如,meta-value ='sold'或meta-value ='expired')。

我查看了以下问题但它们对我不起作用herehere

这是我尝试使用的代码,但我不断收到解析错误:

function my_meta_remove($query){
    if($query->is_archive) {
        $query->set('meta__not_in', array(sold,expired);
    }
    return $query;
    }

add_action("pre_get_posts","my_meta_remove");

1 个答案:

答案 0 :(得分:1)

我猜你错过了)

更改

$query->set('meta__not_in', array(sold,expired);

到这个

$query->set('meta__not_in', array(sold,expired));

修改

meta__not_in不存在,而是需要为每个元字段使用比较和键(插入而不是key_name

function my_meta_remove($query){
if($query->is_archive) {
    $query->set( 'meta_query', array(

        array(
              'key' => 'key_name',
              'value' => 'sold',
              'compare' => 'NOT LIKE'
        ),
        array(
              'key' => 'key_name',
              'value' => 'expired',
              'compare' => 'NOT LIKE'
        )

    ));
}
return $query;
}

add_action("pre_get_posts","my_meta_remove");