我有注册了一个类,Skizzar_Admin_Theme_Options
文件不登记,在该类有以下3个功能(除了别的以外):静态函数在另一个文件
static function get_saved_option($option_slug = '', $user_role = '', $include_user_meta = true, $network = false) {
$option_info = self::get_option_info($option_slug);
// Incompatible arguments
if (! $option_slug || is_null($option_info)) {
return null;
}
// Prepare saved options
$options = self::get_saved_options($include_user_meta, $network);
// Return role-based value
if ($option_info['role-based']) {
// Get user role
if (! $user_role) {
$user_role = Skizzar_Admin_Theme_User::get_user_role();
$user_role = is_null($user_role) ? '' : $user_role;
}
// Return role-based value if it exists, or the default for new roles
return isset($options[ $option_slug ][ $user_role ]) ? $options[ $option_slug ][ $user_role ] : $options[ $option_slug ]['sat-default'];
}
// Return
return $options[ $option_slug ];
}
// Shortcut to get a network option
static function get_saved_network_option($option_slug = '') {
return self::get_saved_option($option_slug, '', true, true);
}
// Return global values if single site dettings are disabled
static function get_skizzar_admin_option() {
$is_network_only = (is_multisite() && Skizzar_Admin_Theme_Options::get_saved_network_option('enable-global-settings')) ? 'get_saved_network_option' : 'get_saved_option';
return $is_network_only;
}
它们是,get_saved_option(),它返回插件从单个WordPress站点保存的选项get_network_saved_option(),如果多站点安装,则返回网络管理员的插件选项。还有get_skizzar_admin_option(),它检查网站是否是多站点,并且用户选择使用全局设置而不是单站点设置,然后根据结果返回'get_saved_option'或'get_network_saved_option'。
要呼叫其他文件类在我的插件,我使用:
Skizzar_Admin_Theme_Options::get_skizzar_admin_option([option-slug])
例如,我可以用它来摆脱工具栏中的某个菜单项:
if (Skizzar_Admin_Theme_Options::get_skizzar_admin_option('hide-toolbar-updates')) {
$wp_toolbar->remove_node('updates');
}
这使用'get_skizzar_admin_option'来检查我们是否应该查看网络保存的选项或单个站点选项。
从我所能看到的方式来看,除了一个文件外,我的方法正在工作。奇怪的是,在这个文件中,我可以使用:
Skizzar_Admin_Theme_Options::get_saved_option()
或
Skizzar_Admin_Theme_Options::get_network_saved_option
,它工作正常,但是当我使用
Skizzar_Admin_Theme_Options::get_skizzar_admin_option
我得到的错误:
get_saved_network_option is not defined
有没有一个明显的原因我想念g为什么我的函数不会只加载一个文件?