Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress 硬刷新\u重写\u规则()未重新生成.htaccess_Wordpress_.htaccess_Redirect_Mod Rewrite_Wordpress Theming - Fatal编程技术网

Wordpress 硬刷新\u重写\u规则()未重新生成.htaccess

Wordpress 硬刷新\u重写\u规则()未重新生成.htaccess,wordpress,.htaccess,redirect,mod-rewrite,wordpress-theming,Wordpress,.htaccess,Redirect,Mod Rewrite,Wordpress Theming,我目前正在开发一个主题,希望在其中添加两个永久链接。 一个是使用一些自定义参数和值(存储在wp_options表中的规则)重定向到index.php,另一个是重定向到我的模板中提供admin-ajax.php功能的文件(存储在.htaccess文件中的规则) 由于我处于开发模式,我也通过在“init”钩子上执行来刷新规则(我知道这是一种不好的做法,但这似乎是检查.htaccess文件中是否有任何更改的最佳方法)。 问题: 尽管默认情况下,flush\u rewrite\u rules()重置硬刷

我目前正在开发一个主题,希望在其中添加两个永久链接。
一个是使用一些自定义参数和值(存储在wp_options表中的规则)重定向到index.php,另一个是重定向到我的模板中提供admin-ajax.php功能的文件(存储在.htaccess文件中的规则)

由于我处于开发模式,我也通过在“init”钩子上执行来刷新规则
(我知道这是一种不好的做法,但这似乎是检查.htaccess文件中是否有任何更改的最佳方法)。 问题:
尽管默认情况下,
flush\u rewrite\u rules()
重置硬刷新,我还是将参数设置为true以确保正确。我的第一条重写规则执行得很好,而.htaccess文件在我访问后端的options-permalink.php页面之前是不会重新生成的(在那里,flush函数也会被调用并工作?!)

我已经尝试过在参考中建议的另一个钩子上执行
flush\u rewrite\u rules()


提前感谢您的帮助

我终于找到了解决办法…
save\u mod\u rewrite\u rules()
是生成和添加重写规则的函数。文件中说:

/* If the function named 'save_mod_rewrite_rules' exists, it will be called. */
此函数是
wp admin/includes/misc.php
的一部分,该函数由
wp admin/includes/admin.php
加载,该函数在
admin\u init
操作挂钩之前加载


然而,您不应该在任何init操作挂钩上刷新重写规则:

您不应该在
init
上挂钩
flush\u rewrite\u rules
。更糟糕的是,如果这是一个硬冲水…哦哇-谢谢你@yivi你不必要的评论。正如我已经指出的,出于测试目的,我在init上钩住了函数。正如我所指出的,我知道你应该把它挂在其他动作上……尽管如此,这对冲洗过程本身应该没有影响,对吗?如果你真的想帮忙的话,请帮自己一个忙,阅读整篇文章。
/* If the function named 'save_mod_rewrite_rules' exists, it will be called. */