不要离开!这不是关于如何按meta\\u值排序的另一个问题!
我有一个帖子类型叫做events
, 我创建的每一篇帖子都有一个我想象中的元域event_dates_wp
它接受多个日期并将其保存为Ymd
总体安排
我有一个WP_Query
返回日期介于两者之间的帖子meta_query
value
s、 像这样:
$args = [
\'post_type\' => \'event\',
\'order\' => \'ASC\',
\'orderby\' => \'meta_value\',
\'meta_key\' => \'event_dates_wp\',
\'posts_per_page\' => -1,
\'meta_query\' => [
[
\'key\' => \'event_dates_wp\',
\'type\' => \'DATE\',
\'value\' => \'20180801\',
\'compare\' => \'>=\'
],
[
\'key\' => \'event_dates_wp\',
\'type\' => \'DATE\',
\'value\' => \'20180831\',
\'compare\' => \'<=\'
]
]
];
这一切都非常有效,并返回包含event_dates_wp
2018年8月1日至2018年8月31日期间的价值;但结果是“以后为中心”而不是“以日期为中心”——让我自己解释一下:以上是人们所期望的,但我想做的是列出日期,从8月1日开始,一直到31日,在每个日期下列出每个匹配的帖子,允许它们重复。
例如:
Event A contains dates [20180801, 20180802, 20180803, 20180804]
Event B contains dates [20180803, 20180804, 20180805]
Event C contains dates [20180804, 20180807]
结果如下所示:20180801 // 1st Aug 2018
Event A
20180802 // 2nd Aug 2018
Event A
20180803 // 3rd Aug 2018
Event A
Event B
20180804 // 4th Aug 2018
Event A
Event B
Event C
20180805 // 5th Aug 2018
Event B
20180806 // 6th Aug 2018
[NO RESULT]
20180807 // 7th Aug 2018
Event C
20180808 // 8th Aug 2018
[NO RESULT]
20180809 // 9th Aug 2018
[NO RESULT]
...
我能想到的唯一方法是一次查询一个日期,然后继续查询下一个日期;这可不是个好主意。有没有一种方法可以实现这种查询基于日期的事件并将其格式化的看似常见的模式?这种行为的一个很好的例子是Barbican events page, 我相信这是在使用Drupal。肯定有一种WordPress的方式来做这种事情?
感谢阅读!