Saya mencoba membuat plugin kecil untuk dipasang di beberapa situs klien Jerman.
Saya dapat menjelajahi WordPress dalam bahasa Jerman, tetapi akan lebih mudah jika menggunakan bahasa Inggris.
Ada sebuah plugin yang mengelola ini ( WP Native Dashboard ) dan meskipun melakukannya dengan luar biasa, itu terlalu berat untuk apa yang saya butuhkan. Klien tidak membutuhkan ini, saya perlu.
Mencoba meniru itu tidak berhasil ... Ini menyimpan opsi database untuk memeriksa swapping bukan $current_user
. Tetapi saya tidak mendapatkan logika untuk ini bekerja.
Jadi, saya mencoba untuk mengadaptasi solusi yang diberikan oleh toscho ini , tetapi sepertinya saya tidak membuat kaitan dengan poin yang benar dari proses WordPress.
Pertanyaannya adalah: bit apa yang hilang (atau saya main-main) dalam kode berikut?
<?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
tidak - dan ya, $current_user
sudah diisi, saya menggunakan FirePHP untuk debugging ... terima kasih!
$current_user->data
sudah terisi :) Plus: apakah berfungsi tanpa cek?
$current_user
- Cukup lucu karena informasinya ada ...
admin_init
. Kemudian jatuhkanis_admin();
dan lihat apakah$current_user
benar-benar berisi sub objek bernamadata
.