从注释更新要将选项数组转换为站点选项,可以尝试以下操作:
add_action( \'init\', \'wpse245699_use_site_options\' );
function wpse245699_use_site_options() {
// Uses site options for these options.
$required_site_options = array(
\'some_option_name\',
\'another_option_name\',
\'and_another_one\',
);
foreach( $required_site_options as $option ) {
add_action( \'update_option_\' . $option, \'wpse245699_update_site_option\', 10, 3 );
add_filter( \'pre_option_\' . $option, \'wpse245699_get_site_option\', 10, 2 );
}
}
function wpse245699_update_site_option( $old_value, $value, $option ) {
update_site_option( $option, $value );
}
function wpse245699_get_site_option( $pre_option = false, $option ) {
return get_site_option( $option );
}
此代码未经测试。
我不建议将WordPress的所有选项都转换为站点选项;每个站点都有许多核心选项,将它们全部设置为相同的值很可能会导致糟糕的结果。
WordPress Multisite已经为所有用户使用了一个表;你不应该需要任何形式的“配置黑客”来完成这一点。至于插件和设置:您可以通过网络激活插件,它们将在您的多站点网络中的每个站点上运行。和设置(或选项--我假设您引用的是Options API) 可以按站点存储和检索(使用*_option()
功能)或跨网络全局(使用*_site_option()
功能)。
WordPress几乎将其所有数据存储在数据库中,因此从文件中保存和加载选项/设置并不是WordPress真正的方式。
Options API