我正在使用ACF插件创建自定义字段,这些字段将应用于自定义帖子类型(项目)。在我的功能中。php文件我正在尝试使用pre\\u get\\u posts来使用自定义字段更改自定义post类型存档的顺序。
function apply_projects_query_filter ($query)
{
if (is_admin()) {
return $query;
}
if (is_archive() && $query->query_vars[\'post_type\'] == \'projects\' && $query->is_main_query()) {
$query->set(\'orderby\', \'meta_value\');
$query->set(\'meta_key\', \'project_status\');
$query->set(\'order\', \'DESC\');
}
return $query;
}
add_action(\'pre_get_posts\', \'apply_projects_query_filter\');
My project\\u status自定义字段的值可能为0或1。使用上面的代码根本不会返回任何结果。我做错了什么?
最合适的回答,由SO网友:BitShredder 整理而成
不知道确切原因,但通过使用meta\\u查询添加另一个过滤器,一切都开始工作了。现在,我只在自定义帖子类型存档中获取未设置project\\u update字段且按project\\u状态排序的帖子。这就是我想要的。
$meta_query = array(
array(
\'key\'=>\'project_update\',
\'value\'=>\'1\',
\'compare\'=>\'!=\',
)
);
$query->set(\'meta_query\', $meta_query);