添加重写规则不适用于我

时间:2015-09-28 作者:nicocube

我正在尝试使用add\\u rewrite\\u规则创建自定义URL。我的问题与此相同:Custom Rewrite with Query vars

但我尝试了这两种解决方案,但都不适用于我。

为了进行测试,我在本地安装了一个新版本的wordpress,默认主题为215。我安装了插件重写规则检查器来查看所有活动规则。我添加了一个页面“test”,并在function中添加了这个函数。php:

add_filter( \'query_vars\', \'query_vars\' );
function query_vars( $vars )
{
    array_push($vars, \'information\');
    return $vars;
}

add_action( \'rewrite_rules_array\', \'rewrite_rules\' );
function rewrite_rules( $rules )
{
    $newrules = array();
    $newrules[ \'test/information/people/?$\' ] = \'index.php?pagename=test&information=people\';

    return $newrules + $rules;
}
我没有忘记刷新新规则。

但当我转到:索引时。php?pagename=测试(&N);信息=人

wordpress写入url:?pagename=测试(&N);信息=人

而非:测试/信息/人员/

为什么?怎么了?Wordpress似乎对我有一个规则。我不明白。。。帮助

1 个回复
SO网友:TheDeadMedic

你搞错了-WordPress不会重写(重定向)你的查询字符串(称为规范化),但如果你使用重写的URL,它会传递你的参数:

http://example.com/test/information/people
现在如果你print_r( $wp-query_vars ) 在模板中,您应该得到如下内容:

Array
(
    [pagename] => test
    [information] => people
)
要将参数重定向到“pretty”(重写)URL,take a look at redirect_canonical

相关推荐