按两个元值排序-一个是数字,另一个是文本

时间:2022-01-27 作者:Brett

基于多个搜索,这是我试图按两个不同的元键值排序的代码。

\'meta_query\' => array(
        \'relation\' => \'AND\',
        \'listing_order\' => array(
            \'key\' => \'atsc_bod_listing_order\',
            \'compare\' => \'EXISTS\',
        ),
        \'last_name\' => array(
            \'key\' => \'atsc_bod_last_name\',
            \'compare\' => \'EXISTS\',
        ), 
    ),
    \'orderby\' => array( 
        \'listing_order\' => \'ASC\',
        \'last_name\' => \'ASC\',
),
我想先按数值排序,如果数值相同,则按姓氏排序。此代码不返回任何结果。我认为这与不知道排序字段是“meta\\u value\\u num”还是“meta\\u value”有关,但我不确定如何/在何处添加该信息。

下面是包含以下建议的完整代码。

<?php
        $args = array (
        \'post_type\'         => \'atsc_bod\',
        \'posts_per_page\'    => -1,
        \'post_status\'       => \'publish\',



            \'meta_query\' => array(
                    \'relation\' => \'AND\',
                    \'listing_order\' => array(
                        \'key\' => \'atsc_bod_listing_order\',
                        \'compare\' => \'EXISTS\',
                        \'type\'    => \'NUMERIC\',
                    ),
                    \'last_name\' => array(
                        \'key\' => \'atsc_bod_last_name\',
                        \'compare\' => \'EXISTS\',
                    ), 
                ),
                \'orderby\' => array( 
                    \'listing_order\' => \'ASC\',
                    \'last_name\' => \'ASC\',
            ),



        );
        $loop = new WP_Query($args);
        ?>

1 个回复
SO网友:Sally CJ

如果atsc_bod_listing_order meta是一个数字,那么您应该设置type 参数到NUMERIC 与此类似,以便将元值转换为数字,然后为您提供正确的数字排序:

\'listing_order\' => array(
    \'key\'     => \'atsc_bod_listing_order\',
    \'compare\' => \'EXISTS\',
    \'type\'    => \'NUMERIC\',
),

相关推荐

元查询字段ORDER和POST_DATE ORDER一起导致不带元字段的帖子无序

我已经设法让wordpress对一个名为start_date 保存在Ymd 通过ACF插件在数据库中设置格式。然而,在我的查询中,没有此字段的其他帖子类型是无序的,并且似乎总是位于包含元字段的所有帖子之后。当前如何返回订单的示例:贴子类型:右对齐日期:年月日新闻2020年9月19日新闻2019年3月12日新闻2018年6月5日出版2020年10月16日出版物2020年10月19日出版物2020年11月2日,这是我正在使用的pre\\u get\\u posts挂钩的摘录。 function ord