刷新后不会更新wordpress中的重写规则

时间:2013-10-05 20:19:16

标签: php wordpress url url-rewriting

我添加了这个函数来重写wordpress中的一些规则:

add_action( 'init', 'my_add_rewrite_rules' );   

function mydid_add_rewrite_rules() {  

 global $wp_rewrite;    

 add_rewrite_rule(....);        
 .... Added some rewrite rules here...

 $wp_rewrite->flush_rules();

}  

到目前为止,一切都很完美。

浏览网址后,我认为包含重写规则的数据库已更新,我已评论该行:

// commented the line because this is an "expensive" action and I suppose that the 
// database is already updated
// $wp_rewrite->flush_rules();

然而,在评论之后,网址重写不起作用。 为什么? 数据库是否已经更新?

P.S。由于某些主题的约束,我无法从wp管理面板中刷新...

由于

3 个答案:

答案 0 :(得分:1)

尝试使用不同的钩子来重写&冲洗:

function mydid_add_rewrite_rules() {  
    global $wp_rewrite;    
    // add_rewrite_rule(....);        
    // .... Added some rewrite rules here...
}
add_action( 'generate_rewrite_rules', 'mydid_add_rewrite_rules' ); 

function mydid_flush_rewrite_rules() {
    global $wp_rewrite;
    $wp_rewrite->flush_rules();
}
add_action( 'init', 'mydid_flush_rewrite_rules');

答案 1 :(得分:1)

好的,发现了问题...

在其他地方还有另一个“刷新重写规则”,它实际上覆盖了数据库。我也对它进行了评论,现在一切正常。

答案 2 :(得分:0)

我找到的解决方案是:

global $wp_rewrite;
$wp_rewrite->flush_rules();
$wp_rewrite->init();