it-swarm.com.de

So ändern Sie das Farbschema der Admin-Leiste in MP6 / WP 3.8 Frontend?

Ich muss das Standardfarbschema für alle Benutzer ändern. Die Admin-Leiste auf meiner Website ist für alle Benutzer, einschließlich der Gäste, vidibel. Das Standard-Schwarz-Farbschema passt nicht zu meinem Design und ich möchte es mit dem Kaffee-Schema ändern. Gibt es eine Möglichkeit, dies zu tun?

Habe ich schon gefunden

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

Die Funktion zum Auswählen eines anderen Farbschemas für Benutzer ist jedoch deaktiviert. Und vor allem funktioniert es nur für angemeldete Benutzer.

5
okonik

Momentan (3.8) sind Farbschemata gelten nicht für die Admin-Leiste im Frontend , auch wenn der Benutzer angemeldet ist und ein anderes als das Standardschema ausgewählt wurde.

Der kürzeste Weg wäre wahrscheinlich, das Enqueue-Farbschema am Frontend zu erzwingen:

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

Beachten Sie, dass Core dies nicht getan hat, sodass es nicht getestet wurde und das Risiko von Stilinkompatibilitäten und Ähnlichem besteht.

4
Rarst

Sie können ein Thema bei der Profilaktualisierung einrichten und, falls vorhanden, das von der Funktion hooking zurückgeben. get_user_option_admin_color andernfalls den Standardwert zurückgeben:

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 erfordert PHP 5.3. Ungetestet .

1
gmazzap

https://wordpress.org/plugins/admin-bar-color/ funktioniert, ist leicht, gut geschrieben und auf GitHub.

Ich musste mein Profil einmal neu speichern, aber jetzt stimmt die Farbe meiner Frontend-Admin-Leiste mit /wp-admin/ überein.

0
lkraav