J'essaie de faire un petit plugin à installer sur certains sites d'un client allemand.
Je peux me déplacer dans WordPress en allemand, mais ce serait plus facile s'il était en anglais.
Il y a un plugin qui gère cela ( WP Native Dashboard ) et bien qu'il le fasse à merveille, c'est trop lourd pour ce dont j'ai besoin. Le client n'a pas besoin de ça, j'en ai besoin.
J'ai essayé de l'émuler en vain ... Il stocke une option de base de données pour vérifier la permutation au lieu de $current_user
. Mais je n'ai pas eu la logique pour que cela fonctionne.
Donc, j'essaie d'adapter cette solution donnée par toscho , mais on dirait que je ne fais pas les crochets aux bons points du processus WordPress.
La question est: quel bit manque (ou je suis en train de déconner) dans le code suivant?
<?php
/*
Plugin Name: Set User Locale
Plugin URI: https://wordpress.stackexchange.com/q/53326/12615
Description: changes the admin language according to user_login
Version: 1.0
Author: wordpress-stackexchange
*/
class Wpse53326_ChangeLocaleOnDemand
{
public function __construct()
{
add_action('admin_init', array(&$this, 'on_init'));
add_filter( 'locale', array(&$this, 'on_change_language') );
}
public function on_init()
{
}
public function on_change_language( $locale )
{
global $current_user;
// this prints the current user_login without problems
// global $firephp;
// $firephp->log($current_user->data->user_login,'user_login');
// the following works for backend/frontend
// but if I try this conditional, it don't: if (is_admin() && 'the_user_login' == $current_user->data->user_login)
if( is_admin() )
{
return 'en_US';
}
return $locale;
}
}
$wpse53326_ChangeLocaleOnDemand_instance = new Wpse53326_ChangeLocaleOnDemand();
admin_init
non , non plus - et oui, $current_user
est peuplé, j'utilise FirePHP pour le débogage ... merci!
$current_user->data
est rempli :) Plus: ça marche sans les chèques?
$current_user
- C'est assez marrant car les infos sont là ...
admin_init
. Ensuite, déposezis_admin();
et voyez s'il$current_user
contient vraiment un sous-objet nommédata
.