Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php WordPress按元值排除存档中的帖子_Php_Wordpress_Custom Post Type - Fatal编程技术网

Php WordPress按元值排除存档中的帖子

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',

我在WordPress中设置了一个自定义存档页面,显示我的自定义帖子。我想排除带有特定meta值(例如meta-value='sell'或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");

我猜你错过了

改变

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