我正在使用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
        )
    );
许可以下: CC-BY-SA归因
scroll top