每个指南似乎都很简单直接 - 只需将一小段代码放入functions.php中,然后通过永久链接和保存来刷新重写规则。但是即使使用最宽松的描述符,我的函数也拒绝承认。
我已经慢慢削减了我使用的代码:
function new_rewrite() {
add_rewrite_rule('^u/(.+)/?$','index.php?pagename=user-profile&user=$matches[1]','top');
}
add_action('init', 'new_rewrite');
这个完全包罗万象的版本向我证明了一些严重错误:
function new_rewrite() {
add_rewrite_rule('.*','index.php','top');
}
add_action('init', 'new_rewrite');
当我使用上面的代码---这对我来说是有道理的,应该把任何东西给它并返回主页---而是完全被忽略,一切都和我试图完全一样写任何规则。
让我重申一下:我已经把它放在functions.php中,我已经添加了很多其他功能,比如add_custom_query_var取得了巨大的成功,而且我也一直在不断刷新重写规则。
这可能会发生什么?
答案 0 :(得分:1)
Wordpress使用位于其安装根目录的htaccess - 而不是网站服务器文件夹的根目录 - 因此WP将覆盖的htaccess与 wp-config.php < / em>的
默认情况下,WP htaccess包含以下两条注释:
# BEGIN WordPress
# END WordPress
Wordpress使用它们来了解他应该在哪里添加add_rewrite_rule
生成的规则 - 有时候移动此注释可以使规则比其他一些自定义规则更高或更低。