我目前正在开发一个主题,我想添加两个永久链接
一个正在重定向到索引。php带有一些自定义参数和值(存储在wp\\u options表中的规则),另一个是重定向到我的模板中的一个文件,该文件提供了管理ajax。php功能(存储在.htaccess文件中的规则)。
add_action( \'init\', \'custom_rewrite_rules\' );
function custom_rewrite_rules() {
add_rewrite_rule(
\'^(activate|reset)/([0-9]*)sfa([A-Za-z0-9]*)/?$\',
\'index.php?sfa_user=$matches[2]&sfa_password_reset=$matches[3]\',
\'top\'
);
add_rewrite_rule(
\'ajax-api/?$\',
str_replace( ABSPATH, \'\', dirname( dirname( __FILE__ ) ) . \'/api/ajax-api.php\' )
);
flush_rewrite_rules( true );
} );
由于我处于开发模式,我也在通过执行“init”钩子刷新规则(我知道这是一种不好的做法,但这似乎是检查.htaccess文件中是否有任何更改的最佳方法)。
The Problem:
即使flush_rewrite_rules()
重置硬刷新默认情况下,我将参数设置为true以确保。我的第一条重写规则表现得很好,而。在访问选项permalink之前,不会重新生成htaccess文件。后端的php页面(在这里也调用了flush函数并可以工作?!)。
我已经试过了flush_rewrite_rules()
参考文件中建议的其他挂钩上。
提前感谢您的帮助!
Edit:
即使将代码更改为以下代码,其行为也与此相同…
global $wp_rewrite;
$wp_rewrite->add_rule( \'^(activate|reset)/([0-9]*)sfa([A-Za-z0-9]*)/?$\', \'index.php?sfa_user=$matches[2]&sfa_password_reset=$matches[3]\', \'top\' );
$wp_rewrite->add_external_rule( \'ajax-api/?$\', str_replace( ABSPATH, \'\', dirname( dirname( __FILE__ ) ) . \'/api/ajax-api.php\' ) );
$wp_rewrite->flush_rules( true );