0

我有基于年份、月份和日期的类别的帖子

类别

2013
    May 14
    APRIL 10
2012
    JUNE 6

我正在
通过创建诸如 category/slug-name/issues/year/month/date 之类的 url 来创建特定日期类别的重写 url

我的重写网址如下

add_action('generate_rewrite_rules', 'past_issue_rewrite_rules');
function past_issue_rewrite_rules( $wp_rewrite ) {
    $wp_rewrite->rules = array_merge( array('category/past-issues/issues/(.+)/(.+)/
    (.+)/' => 'category/past-issues/?year='.$wp_rewrite->preg_index(1).'&month='.
    $wp_rewrite->preg_index(2).'&day='.$wp_rewrite->preg_index(3)), 
    $wp_rewrite->rules );
}

add_filter( 'query_vars', 'setup_filter_query_vars' );  

function setup_filter_query_vars( $query_vars )
{
    $query_vars[] = 'year';
    $query_vars[] = 'month';
    $query_vars[] = 'day';
    return $query_vars;
}

当我尝试访问该页面时,它显示页面未找到。错误是什么?是否可以将参数发送到category.php页面

我不确定。如果这是错误的,请告诉我。

4

1 回答 1

0

我自己找到了解决方案,这是代码

 function past_issue_rewrite_rules(){

    add_rewrite_rule(
        'category/past-issues/(\d+)/(\d+)/(\d+)/?$',
        'index.php?category_name=past-issues&pyear=$matches[1]&pmonth=$matches[2]&pday=$matches[3]',
        'top'
    );
}
add_action( 'init', 'past_issue_rewrite_rules' );
add_filter( 'query_vars', 'setup_filter_query_vars' );
function setup_filter_query_vars( $query_vars )
{
    $query_vars[] = 'pyear';
    $query_vars[] = 'pmonth';
    $query_vars[] = 'pday';
    return $query_vars;
}
于 2013-06-03T12:07:41.193 回答