请有人解释我在WordPress中如何处理重写规则

时间:2014-06-07 12:15:50

标签: wordpress mod-rewrite

我在这里阅读了很多帖子,但我无法理解重写规则的工作原理。

我需要重写简单的类别路径:

http://example.com/category/plugin-reviews/

要:

http://example.com/plugin-reviews/

我已经使用了下一个代码:

function add_rules_for_rewrite() {
    add_rewrite_rule(
        '/plugin-reviews/?$',
        'index.php?category_name=plugin-reviews',
        'top');

    flush_rewrite_rules();
}
add_action( 'init', 'add_rules_for_rewrite' );

在某些方面,我正在检查规则:

global $wp_rewrite;  
print_r( $wp_rewrite->rules );

我看到了我的规则:

[/plugin-reviews/?$] => index.php?category_name=plugin-reviews

为什么它不起作用? Thanx很多解释!

1 个答案:

答案 0 :(得分:1)

只有当固定链接设置设置为默认值

时,这才会使您的重定向规则以您想要的方式工作
function add_rules_for_rewrite() {
    add_rewrite_rule(
        'plugin-reviews/?$',
        'index.php?category_name=plugin-reviews',
        'top');
}
add_action( 'init', 'add_rules_for_rewrite' );

我认为你不需要这行代码:

flush_rewrite_rules();

创建add_rewrite_rule函数,这样您就可以在Wordpress中管理重定向规则。用最简单的方式解释,这里是rewriteRule如何工作

RewriteRule<要匹配的字符串> <重定向网址> <重定向和优先级选项>

她是一篇关于.htaccess中重写规则的基本用法的文章:http://kb.mediatemple.net/questions/85/Using+.htaccess+rewrite+rules#gs

如果没有必要使用Wordpress函数管理重定向规则,那么我建议你使用.htaccess,因为它很方便但是如果你正在开发一个需要经常管理重定向规则的插件或主题,那么你应该使用Wordress功能