WP_QUERY中的多个orderby值

时间:2012-09-20 作者:Force Flow

我试图提出一个查询,以按多个orderby值进行排序。以下是我目前掌握的情况:

    $dept_id=2;
    $query=new WP_Query(array(
            \'post_type\'=>\'wpcontactus\',
            \'nopaging\'=>true,
            \'post_status\'=>array(\'publish\', \'pending\', \'future\'),
            \'meta_key\'=>\'wcu_dept\',
            \'meta_value\'=>$dept_id,
            \'orderby\'=>\'title\',
            \'order\'=>\'ASC\'
    ));
我试图查询一个自定义帖子类型,并在该帖子类型中查询一个元值。

那么,我想先按menu_order 升序,然后按自定义元值wcu_lastname 提升但是,orderby值似乎无法获取数组。

如何使用多个orderby值对查询排序?

3 个回复
最合适的回答,由SO网友:Force Flow 整理而成

$query=new WP_Query(array(
                \'post_type\'=>\'wpcontactus\',
                \'nopaging\'=>true,
                \'post_status\'=>array(\'publish\', \'pending\', \'future\'),
                \'meta_query\'=>array(
                                array(\'key\'=>\'wcu_dept\',\'value\'=>$dept_id, \'compare\'=>\'=\'),
                            ),
                \'meta_key\'=>\'wcu_firstname\',
                \'orderby\'=>\'menu_order wcu_firstname\',
                \'order\'=>\'ASC\'
        ));
通过使用@kaiser建议的内容和meta_query 选项,我可以得到我正在寻找的查询。

SO网友:Pauleau

@Musa如何为字段设置多个订单值?我在想同样的问题,我发现:

在4.0中,现在可以将数组作为orderby的值传递给WP\\u Query。

语法如下所示:

$q = new WP_Query( array( 
    \'orderby\' => array( 
       \'title\'      => \'DESC\', 
       \'menu_order\' => \'ASC\' 
    ) 
));
查看此处了解更多详细信息:https://make.wordpress.org/core/2014/08/29/a-more-powerful-order-by-in-wordpress-4-0/

SO网友:Giang D.MAI

    $args = [
        \'s\'              => $keyword,
        \'post_type\'      => [\'page\'],
        \'paged\'          => $paged,
        \'posts_per_page\' => PAGE_LIMIT,
        \'tax_query\' => [
             [
                  \'taxonomy\'         => TAX_RESOURCE_PAGE,
                  \'field\'            => \'slug\',
                  \'terms\'            => $c_term_slug
             ],
        ],
        \'post_status\'    => \'publish\',
        \'meta_key\'       => \'order\',
        \'meta_type\'      => \'NUMERIC\',
        \'orderby\'        => [
             \'meta_value_num\' => \'ASC\',
             \'ID\' => \'DESC\',
        ],
    ];
    $wp_query = new WP_Query( $args );
我的代码就是一个例子。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post