如果add_rewrite_rule突然失效,可能是由于以下几个原因:
代码冲突:确保您的代码与主题或插件不发生冲突。如果有,可能需要禁用它们并重新启用以查找冲突。
缓存问题:如果您使用了缓存插件(如WP Rocket),请清除缓存,并使用不同的浏览器或设备查看网站是否有问题。
3.Permalink设置:在WordPress管理员后台,转到设置->永久链接,并确保您的选项设置正确。选择“文章名称”选项是最好的选择。
以下是一个示例代码,它可以添加到主题functions.php文件中,来添加一个自定义的rewrite规则:
function my_rewrite_rules() {
add_rewrite_rule('my-page/([^/]+)/?', 'index.php?pagename=my-page&my_custom_var=$matches[1]', 'top');
add_rewrite_tag('%my_custom_var%', '([^&]+)');
}
add_action('init', 'my_rewrite_rules');
然而,如果即使尝试了上面提到的解决方法,问题仍无法解决,则可能需要将此问题报告给WordPress开发人员社区以获得更多的帮助。