在此图像中,
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 from latest year to the oldest, 同时,假设同一年有多个职位。IE:2016年第16号、2016年第23号和2016年第18号。我想让他们进来ascending order.
总之,我希望这些帖子都是有序的,
按字母顺序排列
(按字母顺序)每年(每年订购)数字同时
。
在一个和平的世界里,排序后的帖子应该是这样的
最合适的回答,由SO网友:brianjohnhanna 整理而成
我并不是百分之百地支持您希望实现的订单,但我认为您需要花更多的时间来编写WP_Query
. 一orderby
数组采用wp_posts
表或meta_value
或meta_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
还有文档。