重写规则存储在选项中。什么时候flush_rewrite_rules()
调用时,此选项被删除,WordPress收集当前请求期间注册的所有规则,并将该选项新写入数据库。
您的注册并不是在每个请求上都运行,因此在重写选项时,注册并不存在。
在每次页面加载时注册规则,在激活时刷新重写规则。将注册和同花顺分开。
register_activation_hook(__FILE__,\'PluginA_activation\');
add_action( \'wp_loaded\', \'PluginA_rewrite_rules\' );
function PluginA_activation()
{
PluginA_rewrite_rules();
flush_rewrite_rules();
}
function PluginA_rewrite_rules()
{
add_rewrite_tag(\'%foo%\',\'([^&]+)\');
add_rewrite_rule(\'foo/([^/]+)\',\'index.php?foo=$matches[1]\',\'top\');
}