当传递与当前年份不同的年份参数时,WordPress会给出404页

时间:2014-10-01 作者:user1280853

在此页面上,您将看到我列出了特定月份发生的事件: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页面

1 个回复
SO网友:user1280853

好吧,问题是使用\'year\'作为参数名称,如果我将其改为\'y\'之类的其他名称,它似乎会起作用。

结束

相关推荐

使用_time和_date函数时的区别

我对WordPress的工作方式有些怀疑the_date() 定义为的功能general-template.php在一个页面中,我将使用以下代码片段将帖子归档到一个循环中:<article id=\"post-<?php the_ID(); ?>\" <?php post_class(); ?>> <header> <h3 class