【发布时间】:2014-03-20 03:06:00
【问题描述】:
我有一个按月显示事件的页面。每个事件都有一个 start_date 和 finish_date 作为 yymmdd。如果一个事件跨越两个不同的月份,它应该在它跨越的每个月显示。例如,如果我的活动开始日期为 2014 年 3 月 19 日,结束日期为 2014 年 6 月 19 日,则它应该出现在 3 月、4 月、5 月和 6 月。
我一直在尝试使用 meta_query 在 wordpress 中执行此操作,但我认为这是不可能的:
// Get chosen month to display from URL
$events_month = sanitize_text_field($_GET["month"]);
$events_year = sanitize_text_field($_GET["year"]);
// Convert chosen month to display to a timestamp
$ts = strtotime("$events_month $events_year");
// Create chosen month start end end dates to use for query
$month_start_date = date('Ym01', $ts);
$month_end_date = date('Ymt', $ts);
$args = array(
'post_type' => 'events',
'posts_per_page' => 50,
'order' => 'ASC',
'orderby' => 'meta_value_num',
'meta_key' => 'start_date',
'meta_query' => array(
array(
'key' => 'start_date',
'value' => array($month_start_date, $month_end_date),
'type' => 'numeric',
'compare' => 'BETWEEN'
)
)
);
$events = new WP_Query($args);
所以我正在寻找一个纯 MySQL 解决方案。有什么帮助吗?
【问题讨论】:
标签: php mysql sql wordpress date