ฉันพยายามสร้างปลั๊กอินขนาดเล็กเพื่อติดตั้งในบางเว็บไซต์ของลูกค้าชาวเยอรมัน
ฉันสามารถใช้ WordPress เป็นภาษาเยอรมัน แต่จะง่ายกว่าถ้าเป็นภาษาอังกฤษ
มีปลั๊กอินที่จัดการสิ่งนี้ ( WP Native Dashboard ) และแม้ว่ามันจะเป็นสิ่งที่มหัศจรรย์มันมีน้ำหนักมากเกินไปสำหรับสิ่งที่ฉันต้องการ ลูกค้าไม่ต้องการสิ่งนี้ฉันทำ
พยายามที่จะเลียนแบบมันจะไม่มีประโยชน์ ... $current_user
มันเก็บเป็นตัวเลือกฐานข้อมูลเพื่อการตรวจสอบการแลกเปลี่ยนแทน แต่ฉันไม่ได้รับตรรกะสำหรับสิ่งนี้ในการทำงาน
ดังนั้นฉันจึงพยายามที่จะปรับแก้ปัญหานี้ให้โดย toschoแต่ดูเหมือนว่าฉันไม่ได้ทำ hooks ในจุดที่ถูกต้องของกระบวนการ WordPress
คำถามคือ: บิตใดหายไป(หรือฉันล้อเล่น)ในรหัสต่อไปนี้?
<?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
ไม่, ไม่ใช่ - และใช่, $current_user
มีประชากรฉันใช้ FirePHP สำหรับการดีบัก ... ขอบคุณ!
$current_user->data
มีประชากร :) บวก: มันใช้งานได้โดยไม่ต้องมีการตรวจสอบ?
$current_user
- มันค่อนข้างตลกเพราะข้อมูลมี ...
admin_init
ดู จากนั้นดร็อปis_admin();
และดูว่า$current_user
มีวัตถุย่อยชื่อdata
จริง ๆ หรือไม่