WP 3.8所有用户的默认管理员颜色


10

我对3.8的新配色方案感到惊讶,尽管经典的3.7主题已消失,但我想将新的“ Light”配色方案设置为所有用户的默认设置,但同时,仍然允许他们更改如果愿意,请在用户个人资料中显示主题。

是否有人设法提供一种为所有用户设置默认值的功能?我已经搜索过了,但是什么也找不到,因为这是如此新,没有完全编写3.8 Codex。

Answers:


14

您可以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上还有一个非常不错的插件,可以轻松处理默认的管理员配色方案:默认的管理员配色方案


2
这不是强制特定的方案,而不是设置可更改的默认值吗?
拉斯特2013年

@Rarst好点!我更新了答案,并添加了一个操作,仅在设置时更改颜色;之后,由用户决定:)
2013年

实际上-这对于已经注册的用户不是很有帮助。我不认为有一种方法可以实际迫使他们在下次登录时做出选择(我想这会做很多工作)。
Sol

@Sol只需检查是否已存在设置,以及它是否是3.8中预定义的配色方案之一。如果现在,只需exit( wp_redirect( admin_url( 'profile.php' ) ) );(不确定profile.php)将他们重定向到他们的个人资料,并添加一个admin_notice应该更改的。这样,他们将被强制执行重定向,直到完成此设置为止:)
kaiser

嗨,Kaiser,听起来不错,您能够提供示例代码吗?
Sol
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.