WordPress插件重写规则偶尔会停止工作

时间:2016-11-30 12:18:31

标签: php wordpress url-rewriting

我们在插件停止工作中偶尔重写规则有问题。访问网址时,我们得到404.频率很少,1-2个月或更长时间。也许在web主机服务器重启之后。

我的印象是: 大多数人似乎都说add_rewrite_rule()挂了add_action( 'init', '...' )

你绝对不应该在init中使用flush_rules()但是在插件激活中(根据https://codex.wordpress.org/Rewrite_API/flush_rules

因此 - 混乱。

当前代码:

register_activation_hook(__FILE__, 'xxx_activation');

function xxx_activation() {
    xxx_addrewriterules();
    //other stuff
}

function xxx_addrewriterules() {

    //add rewrite rules
    add_rewrite_rule(
        xxx_DOCUMENT_VIRTUALDIRECTORY . '/([a-zA-Z0-9_\.;=]+)/?$',
        'index.php?document=$matches[1]',
        'top' );

    //flush rules
    global $wp_rewrite;
    $wp_rewrite->flush_rules();
}

我有预感试用/错误将重写移动到' init'并激活'激活' - 但很难确认,因为我们需要至少3个月才能怀疑变更工作,所以更喜欢实际确认或最佳实践示例。

谢谢!

0 个答案:

没有答案