繁体   English   中英

Wordpress用查询参数重写URL

[英]Wordpress rewrite url with query parameters

我发布的类别基于一年,月份和日期

分类目录

2013
    May 14
    APRIL 10
2012
    JUNE 6

我正在创建特定日期类别的重写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页面

我不确定。 如果这是错误的,请让我知道。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM