我在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");
答案 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");