Php WordPress按元值排除存档中的帖子
我在WordPress中设置了一个自定义存档页面,显示我的自定义帖子。我想排除带有特定meta值(例如meta-value='sell'或meta-value='expired')的自定义帖子 我已经看了下面的问题,它们对我和我都不起作用 下面是我试图使用的代码,但我一直遇到一个解析错误:Php WordPress按元值排除存档中的帖子,php,wordpress,custom-post-type,Php,Wordpress,Custom Post Type,我在WordPress中设置了一个自定义存档页面,显示我的自定义帖子。我想排除带有特定meta值(例如meta-value='sell'或meta-value='expired')的自定义帖子 我已经看了下面的问题,它们对我和我都不起作用 下面是我试图使用的代码,但我一直遇到一个解析错误: function my_meta_remove($query){ if($query->is_archive) { $query->set('meta__not_in',
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");
我猜你错过了
)
改变
$query->set('meta\u不在',数组(已售出,过期);
对此
$query->set('meta_uunot_uin',数组(已售出,过期));
编辑
meta\u not\u in
不存在,您需要为每个元字段使用比较和键(插入而不是key\u name
)
谢谢,这修复了我的插件解析错误。但是,代码没有达到我的目的。我的带有上述元值的帖子仍然出现在我的存档页面上。插件没有显示错误,但我的站点现在显示了致命错误:函数名必须是字符串它说21‘return$query($args);‘很抱歉……现在试试看
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");