Wordpress使用查询参数重写URL

时间:2013-05-19 17:55:48

标签: wordpress

我发布了基于一年,一月和一天的类别

分类

2013
    May 14
    APRIL 10
2012
    JUNE 6

我正在创建特定日期类别的重写网址 通过创建类似/ slug-name / issues / year / month / date

的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页面

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

1 个答案:

答案 0 :(得分:0)

我自己找到了s0lution,这里是代码

 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;
}