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.
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.
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 .
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.