为什么我需要在刷新重写规则时再次注册我的自定义POST类型?

时间:2014-02-10 作者:tacudtap

如果我注册自定义帖子类型init 操作触发(在插件激活之前)为什么在刷新重写规则(插件激活时)时需要再次注册自定义帖子类型?请参见以下示例。

add_action( \'init\', \'my_cpt_init\' );
function my_cpt_init() {
    register_post_type( ... );
}

function my_rewrite_flush() {
    my_cpt_init();
    flush_rewrite_rules();
}
register_activation_hook( __FILE__, \'my_rewrite_flush\' );

1 个回复
最合适的回答,由SO网友:Milo 整理而成

当插件被激活时,在该激活请求上运行的唯一东西就是激活挂钩。无论您连接到init的是什么,它都没有也不会在该请求上运行,所以您需要在刷新重写之前在激活中注册它。只有在插件被激活后,在下一个请求中,init操作才会触发该插件。

结束