问题描述
我对 3.8 的新配色方案感到惊讶,虽然经典的 3.7 主题已经消失,但我想将新的”Light” 配色方案设置为所有用户的默认配置,但同时仍允许他们更改主题,如果他们希望在他们的用户个人资料中。
有没有人设法设置一个功能来设置所有用户的默认值?我搜索过,但找不到什么,因为这是新的,3.8 codex 没有完全写。
最佳解决方案
您可以在 functions.php
中设置默认颜色 (按照强制),如下所示:
add_filter( 'get_user_option_admin_color', 'update_user_option_admin_color', 5 );
function update_user_option_admin_color( $color_scheme ) {
$color_scheme = 'light';
return $color_scheme;
}
更新:在 WP 3.8 中,默认情况下可以使用以下配色方案
-
新鲜
-
光
-
蓝色
-
咖啡
-
外质
-
午夜
-
海洋
-
日出
奖金 (在 wpmudev 上找到):禁用管理员颜色方案选项以确保用户无法切换回另一种颜色:
remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );
更新 2:由于 Rarst 指出,上面的过滤器将强制使用特定的配色方案,而不是设置可更改的默认值。解决方案是仅运行一次操作 (例如在用户设置/注册),以便用户可以自行决定和更改颜色:
add_action( 'user_register', 'myplugin_registration_save', 10, 1 );
function myplugin_registration_save( $user_id ) {
update_user_meta($user_id, 'admin_color', 'light');
}
更新 3:好的,所以再试一次:)
这个想法是在用户更新配置文件后立即添加额外的用户元数据 (参见 custom_admin_color_scheme
) 只要字段未设置为 true
,我们将将默认管理颜色方案更改为我们选择的配色方案:
// add custom user meta data
add_action('personal_options_update', 'save_custom_admin_color_optios');
function save_custom_admin_color_optios( $user_id ) {
update_user_meta($user_id, 'custom_admin_color_scheme', true);
}
// change default color scheme if not customized
$customized_color_scheme = get_user_option( 'custom_admin_color_scheme', get_current_user_id() );
if ( empty($customized_color_scheme) ) {
update_user_meta(get_current_user_id(), 'admin_color', 'light');
}
更新 4:最后还有一个非常漂亮的插件在 wordpress.org 处理默认管理颜色方案:Default Admin Color Scheme
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。