首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >刷新init或rest_api_init上的重写规则?

刷新init或rest_api_init上的重写规则?
EN

WordPress Development用户
提问于 2018-09-24 13:57:11
回答 1查看 1.1K关注 0票数 2

如果我使用REST在插件中创建端点,我应该在initrest_api_init上刷新重写规则吗?

我意识到,它应该做插件激活/失活。但是,一旦触发了这些事件中的任何一个,您是否仍然必须尊重传统的钩子过程,以确保修改后的重写规则被刷新?A/K/A -在增加其他路线之后。

示例:

代码语言:javascript
运行
复制
function activate() {

    // do something when this plugin is activated...

    add_action( 'init', function () {

        flush_rewrite_rules( true );
    }, 9999 );

    return true;

}

# Plugin Activation
register_activation_hook( __FILE__, function () {

    require_once( PATH . '/backend/inc/activation.php' );
    Backend\activate();

} );

init

代码语言:javascript
运行
复制
add_action( 'init', function () {

    flush_rewrite_rules( true );
}, 9999 );

rest_api_init

代码语言:javascript
运行
复制
add_action( 'rest_api_init', function () {

    flush_rewrite_rules( true );
}, 9999 );
EN

回答 1

WordPress Development用户

发布于 2018-09-24 14:58:28

如法典所述,不应按惯例重写法拉盛规则:

不要在任何会在常规基础上触发的钩上做。

您应该通过插件激活钩子或主题开关挂钩来执行此操作:

代码语言:javascript
运行
复制
add_action( 'after_switch_theme', 'wpse315001_flush_rewrite_rules' );

register_deactivation_hook( __FILE__, 'wpse315001_flush_rewrite_rules' );
register_activation_hook( __FILE__, 'wpse315001_flush_rewrite_rules' );
function wpse315001_flush_rewrite_rules() {
    flush_rewrite_rules();
}

以上任一项,都应该在您注册自定义post类型之后进行。

另外,在插件被禁用后,您应该刷新重写规则。这样可以确保没有留下无效的规则。

然而,与其他所有问题一样,这也有一个棘手的解决办法。如果重写规则包含半唯一关键字,则可以从选项中获取重写规则,对其执行搜索,并只在必要时刷新规则:

代码语言:javascript
运行
复制
add_action( 'init', 'wpse315001_flush_rewrite_rules', 99999 );
function wpse315001_flush_rewrite_rules(){

    // Get the rewrite rules
    $rules = get_option('rewrite_rules');

    // Check if your semi-unique rule exists in this string
    if ( ! strpos( $rules, 'your-rewrite-rules' ) ) {
        // Flush'em All!
        flush_rewrite_rules();
    }
}

也许不是最好的解决办法,但也行。

票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/315001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档