按多个值组合对帖子进行排序

时间:2016-06-28 作者:Murshid Ahmed

Sample Image for sorting reference

在此图像中,

1。黑色字母是默认的邮件标题

2。\'of\' 是自定义字段

3。年后的数字是该帖子发布的年份

现在我想根据标题的字母顺序对其进行排序。所以会是这样,C, D, D, L 在这种情况下。

同时,我希望它能按年度进行排序。因此,所有以“D”开头的帖子都应该按帖子年份进行排序。

还有在\'of\' 应在该年内按升序排序。

下面的代码块不起作用

 $args = array(
         \'posts_per_page\' => 30,
         \'category__in\' => $idObj,
         \'paged\' => $paged,
         \'meta_query\' => array(
                         \'relation\'    => \'AND\',
                         \'custom_key\' => array(
                                         \'key\' => 
                                         \'original_act_ordinance_information_0_act_ordinance_number\',
                                         \'compare\' => \'EXISTS\',
                                         \'type\'    => \'NUMERIC\',
                                          ),
                         ),
         \'orderby\' => array(
                      \'title\' => \'ASC\',
                      \'post_date\' => \'DESC\',
                      \'custom_key\' => \'ASC\',
                      ),
         );
我在哪里犯错?有什么解决方案可以做到这一点吗?

EDIT:

Alphabetically sorted

所以基本上我想要这个。。。

所以这张图片被排序了alphabetically, 同时,所有岗位应sorted from latest year to the oldest, 同时,假设同一年有多个职位。IE:2016年第16号、2016年第23号和2016年第18号。我想让他们进来ascending order.

总之,我希望这些帖子都是有序的,

按字母顺序排列

  • (按字母顺序)每年

  • (每年订购)数字

    同时

  • 在一个和平的世界里,排序后的帖子应该是这样的

    What exactly I wanted

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

    我并不是百分之百地支持您希望实现的订单,但我认为您需要花更多的时间来编写WP_Query. 一orderby 数组采用wp_posts 表或meta_valuemeta_value_num 作为键,而不是自定义字段键的名称(custom_key 在您的情况下)。自定义字段的实际名称在args数组中定义为meta_key.

    如果您查看下面的最后两个示例Orderby Parameters in the Codex, 您可以看到这是如何工作的,并将其应用到您的情况中。这是未经测试的,但给出了总体思路:

    $args = array(
        \'posts_per_page\' => 30,
        \'category__in\' => $idObj,
        \'paged\' => $paged,
        \'meta_query\' => array(
            array(
                \'key\' => \'original_act_ordinance_information_0_act_ordinance_number\',
                \'compare\' => \'EXISTS\',
                \'type\'    => \'NUMERIC\',
             ),
         ),
         \'orderby\' => array(
             \'title\' => \'ASC\',
             \'post_date\' => \'DESC\',
             \'meta_value_num\' => \'ASC\',
         ),
         \'meta_key\' => \'original_act_ordinance_information_0_act_ordinance_number\',
     );
    
    你也有meta_query 设置不正确,因此我建议您检查WP_Query 还有文档。

    相关推荐

    WooCommerce sort by SKU

    所以我试过了https://gist.github.com/bekarice/1883b7e678ec89cc8f4d 在我的网站上。只要所有产品都有SKU,效果就很好。如果产品没有SKU,则根本不会显示。也就是说,是否有其他方法可以按SKU排序,但不要求产品实际具有SKU?