我看到了很多打电话的例子add_rewrite_rule
在您的init
挂钩,例如。
function add_my_custom_rewrite()
{
add_rewrite_rule(...
}
add_action(\'init\', \'add_my_custom_rewrite\');
在插件激活挂钩中,
register_activation_hook( __FILE__, \'my_plugin_activation\');
function my_plugin_activation()
{
add_my_custom_rewrite();
flush_rewrite_rules(false);
}
所以,当你的插件被激活时,你的重写将被刷新到db中,看起来很有效,
but, there is a main problem当人们停用你的插件时,删除重写仍然不能解决问题,你不能简单地放置flush_rewrite_rules
在停用挂钩中,因为在停用之前已经调用了init,所以无法删除现有的重写规则。,e、 g。
register_deactivation_hook( __FILE__, \'my_plugin_deactivation\');
function my_plugin_deactivation()
{
flush_rewrite_rules(false); // will not work, since init (hence add_my_custom_rewrite) was already called at this point
}
有没有更好的方法来解决add\\u rewrite\\u规则、插件激活和插件停用之间的冲突?