Wordpress重写规则重定向到发布

时间:2016-03-11 09:27:05

标签: wordpress mod-rewrite rewrite

我目前正在搞乱Wordpress中的URL重写。

我正在尝试重写此网址:

http://localhost/adorable-nails/behandelingen-tarieven/?category=gelnagels

致:

http://localhost/adorable-nails/behandelingen-tarieven/gelnagels

我在主题的functions.php中添加了以下代码:

function add_query_vars_filter( $vars ){
    $vars[] = "category";
    return $vars;
}
add_filter( 'query_vars', 'add_query_vars_filter' );

function custom_rewrite_rule() {
    add_rewrite_rule('^behandelingen-tarieven/([^/]*)/([^/]*)/?','index.php?pagename=behandelingen-tarieven&category=$matches[1]','top');
}
add_action('init', 'custom_rewrite_rule', 10, 0);

所以似乎正在发生的事情是,当我尝试转到http://localhost/adorable-nails/behandelingen-tarieven/gelnagels时,它会将我重定向到帖子名称中包含“gelnagels”的帖子,我当前的永久链接设置设置为:http://localhost/adorable-nails/sample-post/ < / p>

所以我想知道无论如何都要避免重定向,或者我是否必须选择简单的永久链接设置并自行完成所有重写规则?

提前致谢!

1 个答案:

答案 0 :(得分:2)

正则表达式有2个可能的匹配,而url只提供了一个。将^behandelingen-tarieven/([^/]*)/([^/]*)/?更改为^behandelingen-tarieven/([^/]*)/?并保存永久链接似乎解决了这个问题。

这里最重要的事情(这也就是我写这个作为答案的原因)是:

永远不会忘记在更改rewrite_rule

后保存您的永久链接配置

我花了太多时间改变它,直到我意识到保存永久链接是必要的。希望这可以帮助将来的某个人:)