web-dev-qa-db-fra.com

Comment changer le jeu de couleurs de la barre d'administration dans MP6 / WP 3.8 front end?

Je dois changer les couleurs par défaut pour tous les utilisateurs. La barre d'administration de mon site est vidibile pour tous les utilisateurs, y compris les invités. Le jeu de couleurs noir par défaut n’est pas la beauté de mon dessin et j’aimerais le changer avec un jeu de café. Y a-t-il un moyen de faire ça?

J'ai déjà trouvé

add_filter('get_user_option_admin_color','change_admin_color');
function change_admin_color($result) {
   return 'coffee';
}

Mais il désactive la fonctionnalité pour choisir un autre jeu de couleurs pour les utilisateurs. Et tout d’abord, cela ne fonctionne que pour les utilisateurs connectés.

5
okonik

Pour le moment (3,8), les jeux de couleurs ne s'appliquent pas à la barre d'administration du système frontal du tout, même si l'utilisateur est connecté et qu'un jeu autre que celui par défaut est sélectionné.

Le moyen le plus rapide serait probablement de forcer le jeu de couleurs de mise en file d'attente au début du processus:

add_action(
    'wp_enqueue_scripts',
    function () {
        wp_enqueue_style(
            'color-admin-bar',
            admin_url( '/css/colors/coffee/colors.min.css' ),
            array( 'admin-bar' )
        );
    } );

Notez que core a choisi de ne pas le faire, il n'a donc pas été testé et il existe un risque d'incompatibilités de style, etc.

4
Rarst

Vous pouvez configurer un thème lors de la mise à jour du profil et, le cas échéant, renvoyer celui de la fonction hooking get_user_option_admin_color sinon renvoyer la valeur par défaut:

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;
}

Code requis PHP 5.3. Non testé .

1
gmazzap

https://wordpress.org/plugins/admin-bar-color/ works, est léger, bien écrit et sur GitHub.

Je devais ré-enregistrer mon profil une fois, mais maintenant, la couleur de ma barre d’administrateur s’adapte à /wp-admin/.

0
lkraav