WP 3.8 Colore amministratore predefinito per tutti gli utenti


10

Sono sorpreso dal nuovo schema di colori per 3.8 e sebbene il tema classico 3.7 sia sparito, vorrei impostare il nuovo schema di colori "Leggero" come predefinito per tutti gli utenti, ma allo stesso tempo consentire loro di cambiare il tema se lo desiderano, nel loro profilo utente.

Qualcuno è riuscito a trovare una funzione per impostare il valore predefinito per tutti gli utenti? Ho cercato ma non riesco a trovare nulla in quanto è così nuovo, il codice 3.8 non è completamente scritto.

Risposte:


14

Puoi impostare (in termini di forza) un colore predefinito in functions.phpquesto modo:

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

Aggiornamento: Le seguenti combinazioni di colori sono disponibili per impostazione predefinita in WP 3.8

  • fresco
  • luce
  • blu
  • caffè
  • ectoplasma
  • mezzanotte
  • oceano
  • Alba

Bonus (disponibile su wpmudev ): disabilita le Opzioni combinazione colori amministratore per assicurarsi che gli utenti non possano tornare a un altro colore:

remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

Aggiornamento 2: Come sottolineato da Rarst, il filtro sopra forzerà una combinazione di colori specifica invece di impostare un valore predefinito modificabile. La soluzione a questo è eseguire un'azione una sola volta (ad es. Durante la configurazione / registrazione dell'utente) in modo che l'utente possa decidere e cambiare il colore da solo:

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

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

}

Aggiornamento 3: Okay, quindi prova ancora :)

L'idea è quella di aggiungere altri metadati utente (vedi custom_admin_color_scheme) non appena l'utente aggiorna il profilo; purché il campo non sia impostato su true, cambieremo la combinazione di colori predefinita dell'amministratore con una combinazione di colori a nostra scelta:

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

}

Aggiornamento 4: Infine, su wordpress.org esiste anche un plug-in molto carino per gestire facilmente le combinazioni di colori di amministrazione predefinite : Schema di colori di amministrazione predefinito


2
Questo schema specifico della forza non imposterà un default modificabile?
Rarst

@Primo punto buono! Ho aggiornato la mia risposta e ho aggiunto un'azione per cambiare il colore solo durante l'installazione; dopodiché tocca all'utente :)
Sven

In realtà, questo non è molto utile per gli utenti già registrati. Suppongo che non ci sia un modo per costringerli effettivamente a fare una scelta al prossimo accesso (sarebbe un sacco di lavoro immagino).
Sol,

@Sol Controlla semplicemente se esiste già un'impostazione e se è una delle combinazioni di colori predefinite da 3.8. Se ora, semplicemente exit( wp_redirect( admin_url( 'profile.php' ) ) );(non sono sicuro profile.php) reindirizzarli al loro profilo e aggiungere un admin_noticeche dovrebbero cambiare. Fatto in questo modo, vengono forzati mentre il reindirizzamento avverrà fino a quando non verrà eseguita questa impostazione :)
Kaiser

Ciao Kaiser, sembra perfetto sei in grado di fornire un codice di esempio?
Sol,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.