0

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

我已经查看了以下问题,但它们在这里这里都不适用于我

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

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");
4

1 回答 1

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");
于 2013-09-30T23:09:23.423 回答