如何在MP6/WP 3.8前端更改管理栏配色方案?

时间:2013-12-14 作者:okonik

我需要更改所有用户的默认配色方案。我的网站上的管理栏可供所有用户使用,包括来宾。默认的黑色配色方案不符合我的设计,我想用咖啡色配色方案来改变它。有没有办法做到这一点?

我已经找到了

add_filter(\'get_user_option_admin_color\',\'change_admin_color\');
function change_admin_color($result) {
   return \'coffee\';
}
但它禁用了为用户选择其他颜色方案的功能。首先,它只对登录用户有效。

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

目前(3.8)配色方案do not apply to admin bar at front end 无论如何,即使用户已登录并选择了非默认方案。

最短的方法可能是在前端强制排队颜色方案:

add_action(
    \'wp_enqueue_scripts\',
    function () {
        wp_enqueue_style(
            \'color-admin-bar\',
            admin_url( \'/css/colors/coffee/colors.min.css\' ),
            array( \'admin-bar\' )
        );
    } );
请注意,core选择不这样做,因此它未经测试,存在样式不兼容等风险。

SO网友:gmazzap

您可以在概要文件更新时设置主题,如果存在,则从函数挂钩返回主题get_user_option_admin_color 否则返回默认值:

add_action(\'profile_update\', function($user_id) {
  // on profile update save the unfiltered color choice in an additional meta
  $set = get_user_meta(\'admin_color\', $user_id, true) ? : \'coffee\';
  update_user_meta($user_id, \'_setted_admin_color\', $set);
});

add_filter(\'get_user_option_admin_color\',\'change_admin_color\');

function change_admin_color($result) {
   $color = \'coffee\';
   if ( is_user_logged_in() ) { // for nono logged user output default
      // get the unfiltered color meta
      $setted = get_user_meta( get_current_user_id(), \'_setted_admin_color\', true );
      // if present set color to that
      if ( ! empty($setted) ) $color = $setted;
   }
   return $color;
}
代码需要PHP 5.3。Untested.

SO网友:lkraav

https://wordpress.org/plugins/admin-bar-color/ 工作,重量轻,写得好,在GitHub上。

我曾经不得不重新保存我的个人资料,但现在我的前端管理栏颜色匹配/wp-admin/.

结束

相关推荐

将内容添加到/wp-admin/plugin-install.php管理屏幕

我想向上显示的插件信息添加一些外部内容/wp-admin/plugin-install.php 管理屏幕。/wp-admin/plugin-install.php 调用以下命令:$wp_list_table = _get_list_table(\'WP_Plugin_Install_List_Table\'); 如果我破解这个核心文件作为测试,我可以添加内容,我想,好的。然而,作为一名新的WP开发者,我真的很难看到如何通过插件添加这些内容。class WP_Plugin_Install_List