WP 3.8 Standard-Admin-Farbe für alle Benutzer

10

Ich bin überrascht über das neue Farbschema für 3.8 und obwohl das klassische 3.7-Thema weg ist, möchte ich das neue "Licht" -Farbschema als Standard für alle Benutzer festlegen, aber gleichzeitig zulassen, dass sie das ändern Thema, wenn sie möchten, in ihrem Benutzerprofil.

Hat es jemand geschafft, eine Funktion zu entwickeln, mit der der Standard für alle Benutzer festgelegt werden kann? Ich habe gesucht, kann aber nichts finden, da dies so neu ist, 3.8 Codex nicht vollständig geschrieben.

Sol
quelle

Antworten:

14

Sie können (in Bezug auf die Kraft) eine Standardfarbe functions.phpwie folgt festlegen :

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

Update: Die folgenden Farbschemata sind standardmäßig in WP 3.8 verfügbar

  • frisch
  • Licht
  • Blau
  • Kaffee
  • Ektoplasma
  • Mitternacht
  • Ozean
  • Sonnenaufgang

Bonus (auf wpmudev verfügbar ): Deaktivieren Sie die Optionen für das Admin- Farbschema , um sicherzustellen, dass Benutzer nicht zu einer anderen Farbe zurückkehren können:

remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

Update 2: Wie Rarst wies die Filter oben wird zwingt ein bestimmtes Farbschema stattdessen eine veränderbare Standard zu setzen. Die Lösung hierfür besteht darin, eine Aktion nur einmal auszuführen (z. B. bei der Einrichtung / Registrierung des Benutzers), damit der Benutzer danach selbst entscheiden und die Farbe ändern kann:

add_action( 'user_register', 'myplugin_registration_save', 10, 1 );
function myplugin_registration_save( $user_id ) {

       update_user_meta($user_id, 'admin_color', 'light');

}

Update 3: Okay, also noch ein Versuch :)

Die Idee ist, zusätzliche Benutzer-Metadaten hinzuzufügen (siehe custom_admin_color_scheme), sobald der Benutzer das Profil aktualisiert. Solange das Feld nicht auf gesetzt ist, trueändern wir das Standard-Administratorfarbschema in ein Farbschema unserer Wahl:

// 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');

}

Update 4: Schließlich gibt es auch ein sehr nettes Plugin auf wordpress.org, mit dem Standard-Admin-Farbschemata einfach verarbeitet werden können: Standard-Admin- Farbschema

Sven
quelle
2
Wird dieses erzwungene Schema nicht erzwungen, anstatt einen änderbaren Standard festzulegen?
Erster
@Rarst Guter Punkt! Ich habe meine Antwort aktualisiert und eine Aktion hinzugefügt, um nur die Farbe beim Setup zu ändern. danach liegt es am Benutzer :)
Sven
Eigentlich - das ist nicht sehr hilfreich für bereits registrierte Benutzer. Ich nehme nicht an, dass es eine Möglichkeit gibt, sie tatsächlich zu zwingen, beim nächsten Login eine Wahl zu treffen (das wäre eine Menge Arbeit, denke ich).
Sol
@Sol Überprüfen Sie einfach, ob bereits eine Einstellung vorhanden ist und ob es sich um eines der vordefinierten Farbschemata aus 3.8 handelt. Wenn jetzt, leiten Sie sie einfach exit( wp_redirect( admin_url( 'profile.php' ) ) );(nicht sicher profile.php) zu ihrem Profil um und fügen Sie eine hinzu admin_notice, die sie ändern sollten. Auf diese Weise werden sie gezwungen, da die Umleitung erfolgt, bis diese Einstellung vorgenommen wird :)
Kaiser
Hallo Kaiser, hört sich perfekt an. Können Sie einen Beispielcode bereitstellen?
Sol