使用query_posts自定义查询没有某些meta_key显示帖子
-
16-10-2019 - |
题
我正在使用query_posts对某些类别进行排序。我的代码看起来像这样:
query_posts('category_name=abs&orderby=meta_value_num&meta_key=field_ordering&order=DESC');
如我所指定的那样,这确实显示了精确排序模型。但是,上面的查询没有显示该帖子没有 meta_key
在数据库中设置“ field_ordering”。
我的问题是,我不想将其设置在所有帖子上,但是我仍然可以显示数据。
有解决方案吗?
解决方案
好吧,您不能按不存在的字段进行排序。您只能在具有该字段的那些类别中进行有条件修改,并让默认查询在REST中工作。
这将是:
if( is_category('abs') )
query_posts(
array_merge(
array('orderby' => 'meta_value',
'meta_key' => 'field_order',
'order' => 'Desc' ),
$wp_query->query
)
);