Alman bir istemcinin bazı sitelerine yüklemek için küçük bir eklenti yapmaya çalışıyorum.
Almanca WordPress etrafında yolumu yapabilirim, ancak İngilizce olsaydı daha kolay olurdu.
Bunu yöneten bir eklenti var ( WP Native Dashboard ) ve harika bir şekilde yapmasına rağmen, ihtiyacım olan şey için çok ağır. Müşteri buna ihtiyaç duymaz, ben de isterim.
Boşuna öykünmek için çalıştı ... Yerine takas kontrol etmek için bir veritabanı seçeneği saklar $current_user
. Ama bunun çalışması için mantık alamadım.
Bu yüzden, toscho tarafından verilen bu çözümü uyarlamaya çalışıyorum , ancak WordPress sürecinin doğru noktalarında kancaları yapmıyorum gibi görünüyor.
Soru şudur: Aşağıdaki kodda hangi bit eksik (veya karıştırıyorum) ?
<?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
hiçbiri - ve evet, $current_user
nüfuslu, hata ayıklamak için FirePHP kullanıyorum ... teşekkürler!
$current_user->data
nüfuslu olup olmadığını sordum :) Artı: çekler olmadan çalışıyor mu?
$current_user
- Çok komik çünkü bilgi var ...
admin_init
. Sonra bırakınis_admin();
ve$current_user
gerçekten adlı bir alt nesne içerip içermediğini göründata
.