你几乎做到了——这只是一个逻辑问题。你的意思是“获取没有这个元键的帖子,或者这个元键不等于‘达卡’”。问题是,根本没有那个元键的帖子。。。也不等于“达卡”,所以他们匹配!
您可以使用一个嵌套的meta\\u查询来解决这个问题,使用AND关系来检查该键是否也存在,如果您要比较它不等于什么。像这样:
$args[\'meta_query\'] = array(
\'relation\' => \'OR\',
array(
\'key\' => \'wpse_city\',
\'compare\' => \'NOT EXISTS\',
),
array(
\'relation\' => \'AND\',
array(
\'key\' => \'wpse_city\',
\'compare\' => \'EXISTS\',
),
array(
\'key\' => \'wpse_city\',
\'value\' => \'dhaka\',
\'compare\' => \'!=\',
)
)
);
当您使用EXISTS和NOT EXISTS时,您也不需要再提供值了-这是由于一个旧bug造成的。请参见
WP_Meta_Query documentation 有关此的详细信息。