WP 3.8 Couleur d'administration par défaut pour tous les utilisateurs

10

Je suis surpris par le nouveau jeu de couleurs pour la version 3.8 et bien que le thème classique 3.7 soit parti, je voudrais définir le nouveau jeu de couleurs "Clair" comme valeur par défaut pour tous les utilisateurs, mais en même temps, leur permettre de changer la thème s'ils le souhaitent, dans leur profil utilisateur.

Quelqu'un a-t-il réussi à proposer une fonction pour définir la valeur par défaut pour tous les utilisateurs? J'ai cherché mais je ne trouve rien car c'est si nouveau, le codex 3.8 n'est pas entièrement écrit.

Sol
la source

Réponses:

14

Vous pouvez définir (en termes de force) une couleur par défaut à l'intérieur functions.phpcomme ceci:

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

Mise à jour: les schémas de couleurs suivants sont disponibles par défaut dans WP 3.8

  • Frais
  • lumière
  • bleu
  • café
  • ectoplasme
  • minuit
  • océan
  • lever du soleil

Bonus (trouvé sur wpmudev ): désactivez les options du schéma de couleurs d'administration pour vous assurer que les utilisateurs ne peuvent pas revenir à une autre couleur:

remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

Mise à jour 2: Comme l'a souligné Rarst, le filtre ci-dessus forcera un jeu de couleurs spécifique au lieu de définir une valeur par défaut modifiable. La solution à cela consiste à exécuter une action une seule fois (par exemple sur la configuration / l'enregistrement de l'utilisateur) afin que l'utilisateur puisse décider et changer la couleur par lui-même:

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

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

}

Mise à jour 3: D'accord, alors essayez encore :)

L'idée est d'ajouter des métadonnées utilisateur supplémentaires (voir custom_admin_color_scheme) dès que l'utilisateur met à jour le profil; tant que le champ n'est pas défini sur, truenous changerons le jeu de couleurs admin par défaut en un jeu de couleurs de notre choix:

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

}

Mise à jour 4: Enfin, il existe également un très joli plugin sur wordpress.org pour gérer facilement les schémas de couleurs par défaut : Schéma de couleurs par défaut

Sven
la source
2
Ce schéma spécifique ne sera-t-il pas forcé plutôt que de définir une valeur par défaut modifiable?
Rarst
@Rarst Bon point! J'ai mis à jour ma réponse et ajouté une action pour modifier uniquement la couleur lors de la configuration; après cela, c'est à l'utilisateur :)
Sven
En fait - ce n'est pas très utile pour les utilisateurs déjà enregistrés. Je ne suppose pas qu'il existe un moyen de les forcer à faire un choix lors de la prochaine connexion (ce serait beaucoup de travail, je suppose).
Sol
@Sol Vérifiez simplement s'il existe déjà un paramètre et s'il s'agit de l'un des schémas de couleurs prédéfinis de 3.8. Si maintenant, redirigez-les exit( wp_redirect( admin_url( 'profile.php' ) ) );(pas sûr profile.php) vers leur profil et ajoutez-en un admin_noticequ'ils doivent changer. Fait de cette façon, ils sont forcés car la redirection se produira jusqu'à ce que ce paramètre soit fait :)
kaiser
Salut Kaiser, les sons sont parfaits, pouvez-vous fournir un exemple de code?
Sol