Custom query with query_posts doesn't show post without certain meta_key

时间:2010-09-27 作者:ariefbayu

我使用query\\u posts对某些类别进行排序。我的代码如下所示:

query_posts(\'category_name=abs&orderby=meta_value_num&meta_key=field_ordering&order=DESC\');
正如我指定的那样,这确实以精确的排序模型显示了post。然而,上面的查询没有显示帖子没有meta_key \'数据库中设置了field\\u ordering。

我的问题是,我不想在所有帖子上都设置它,但我仍然可以显示数据。

有什么解决办法吗?

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

嗯,您不能按不存在的字段进行排序。您只能在具有该字段的类别中有条件地修改查询,并让默认查询在rest中工作。

可能是这样的:

if( is_category(\'abs\') )
    query_posts(
    array_merge(
    array(\'orderby\' => \'meta_value\', 
                  \'meta_key\' => \'field_order\', 
                  \'order\' => \'Desc\' ),
    $wp_query->query
        )
    );

结束

相关推荐