如何在WordPress 3.1中将orderby与META_QUERY结合使用?

时间:2011-03-02 作者:Jeff K.

在使用meta\\u query对自定义帖子列表进行过滤后,是否可以根据我选择的元数据对其进行排序?

例如,我有一个称为webinars的自定义帖子类型。我正在尝试列出所有即将举行的网络研讨会,并按名为webinar\\u startDate的自定义元字段进行排序。

使用以下查询,我成功地返回了网络研讨会,排除了旧的网络研讨会。然而,它们仍然是按发布顺序发布的,而不是按网络研讨会开始日期发布的。

<?php $my_array =  array(
    \'meta_query\' => array(
            array(
                \'key\' => \'webinar_startDate\',
                \'value\' => date("Y-m-d H:i:s"),
                \'compare\' => \'>=\',
                \'type\' => \'DATETIME\'
            )
    ),
    \'orderby\' => \'meta_value\',
    \'post_type\' => \'webinars\',
    \'posts_per_page\' => 20,
    \'order\' => \'ASC\'
); ?>
我怀疑由于从3.0到3.1的变化,orderby=>meta\\u值的使用可能有所不同,但我在WordPress文档中找不到解释这一点的答案。

有人能帮忙吗?提前谢谢。

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

新的meta_query 数组选择查询返回的帖子。因此,是的,您在其中指示“键”meta_query, 但你仍然可以使用

\'orderby\' => \'meta_value\', 
\'meta_key\' => \'_events_meta\',
除了meta\\u查询之外,因为这些行指示如何对结果查询进行排序。因此,是的,您可能会两次指示相同的meta\\u键。

SO网友:Guru 2.0

我正在为我的自定义帖子使用以下代码events, 在循环中获取所有帖子。

$evtLoop = new WP_Query(array(\'post_type\' => \'events\',
                              \'posts_per_page\' => 10,
                              \'orderby\' => \'meta_value\', 
                              \'meta_key\' => \'_events_meta\',
                              \'order\'=>\'DESC\'));
我认为您使用代码的方式大致相同。我想你错过了meta_key 使用要排序的元字段的名称。如果您添加

\'meta_key\' => \'webinar_startDate\',
到外部阵列?

结束

相关推荐