在此页面上,您将看到我列出了特定月份发生的事件:http://conciergemaps.ch/events/
这是在Wordpress上,当您选择某个月份和年份时,它会将URL附加两个参数(月份和年份,即?月份=10月&年份=2014年)。问题是,如果年份不是当前年份(2014年),则会出现404错误。我使用以下代码仅显示所选月份下的正确事件(它们是自定义帖子类型):
$events_month = sanitize_text_field($_GET["month"]);
$events_year = sanitize_text_field($_GET["year"]);
if (empty($events_month) || empty($events_year)) {
$events_month = date(\'F\');
$events_year = date(\'Y\');
}
$ts = strtotime("$events_month $events_year");
$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\' => $month_end_date,
\'type\' => \'numeric\',
\'compare\' => \'<=\'
),
array(
\'key\' => \'finish_date\',
\'value\' => $month_start_date,
\'type\' => \'numeric\',
\'compare\' => \'>=\'
)
),
);
$events = new WP_Query($args);
当年份不是当前年份时,为什么会出现404?如果当月没有发生任何事件,则只应说“没有要显示的事件”,这将在进一步的查询中处理,但这只是将页面切换到404页面