Wordpress Rewrite Rules

时间:2012-06-24 作者:Kristian Vitozev

我创建了页面模板,该模板需要获取一些GET变量,当前URL如下所示:

http://example.com/coupons/?cat_id=25

我需要这样做:

http://example.com/coupons/25

我查看了WP\\U重写文档,并对这些内容进行了一些处理,但无法使其正常工作。

你好,克里斯

1 个回复
最合适的回答,由SO网友:Milo 整理而成

首先,必须筛选查询变量并将查询变量添加到数组中:

add_filter( \'query_vars\', \'wpa56345_query_vars\' );

function wpa56345_query_vars( $query_vars ){
    $query_vars[] = \'cat_id\';
    return $query_vars;
}
然后,您的规则将捕获您的pagename优惠券后的任何数字,并将其作为cat_id:

add_action( \'init\', \'wpa56345_rewrites\' );

function wpa56345_rewrites(){
    add_rewrite_rule(
        \'coupons/(\\d+)/?$\',
        \'index.php?pagename=coupons&cat_id=$matches[1]\',
        \'top\'
    );
}
以上两者都在你的主题中发挥作用。php。确保在将重写规则添加到刷新规则后访问permalinks设置页面,否则它们将不会生效。如果您将所有内容都放入插件中,则可以将其设置为在首次添加规则时刷新规则。

无论如何,在模板中,您可以访问cat_id 使用:

echo get_query_var( \'cat_id\' );

结束

相关推荐