为所有用户设置默认管理员颜色

时间:2013-12-16 作者:SolaceBeforeDawn

我对3.8的新配色方案感到惊讶,虽然经典的3.7主题已经消失,但我想将新的“浅色”配色方案设置为所有用户的默认配色方案,但同时,如果他们愿意,仍允许他们在用户配置文件中更改主题。

有没有人想出一个函数来为所有用户设置默认值?我已经搜索过了,但找不到任何东西,因为这是如此新,3.8法典没有完全编写。

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

您可以在中设置(强制)默认颜色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指出的,上面的过滤器将force 特定的配色方案,而不是设置可更改的默认值。解决方法是只运行一次操作(例如,在用户设置/注册时),以便用户可以自行决定和更改颜色:

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上还有一个很好的插件。轻松处理默认管理配色方案的组织:Default Admin Color Scheme

SO网友:T.Todua

这个add_filter( \'get_user_option_admin_color\', ...) 设置颜色,但不会从我的个人资料页面中删除该选项。因此,如果要强制(并阻止)用户进行任何修改:

    remove_action("admin_color_scheme_picker", "admin_color_scheme_picker"); 
如果用户注册时也需要设置,则:

add_action(\'user_register\', \'my_func\');
function my_func($user_id) {
    $args = array(
        \'ID\' => $user_id,
        \'admin_color\' => \'ectoplasm\'
    );
    wp_update_user( $args );
}

结束

相关推荐

ajax in admin menu

遵循列出的教程here, 很抱歉,数据没有保存到我试图设置的用户元中。这个过程本身似乎很简单,但元数据没有被保存。在运行jQuery脚本时,我没有遇到任何控制台错误和运行的小成功动画。<?php add_action( \'admin_footer\', \'ring_jquery\' ); function ring_jquery() { ?> <script type=\"text/javascript\">