我有一个名为“事件”的自定义帖子类型,我有一个按每月显示事件的页面。每个事件都有一个start\\u date和finish\\u date自定义字段(使用高级自定义字段插件),该字段将日期存储为yymmdd。如果一个事件跨越两个不同的月份,它只会出现在开始日期的月份。我也被困在如何在完成日期的当月显示它。例如,如果我有一个开始日期为2014年3月19日、结束日期为2013年4月19日的活动,它应该出现在3月和4月。
我正在使用以下内容:
// 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);