在wp-config.php中,我通过以下方式定义了WPLANG:
if(isset($_GET['lang']) && $_GET['lang'] == 'pl') {
define('WPLANG', 'pl_PL');
} else {
define('WPLANG', 'en_US');
}
每当我访问WPLANG时它都能很好地工作,但是当我尝试从mailpress小部件添加元数据时,它无法识别WPLANG。将语言插入wpdb的功能位于主题的functions.php中:
add_action( 'MailPress_insert_user', 'MailPress_insert_set_lang');
function MailPress_insert_set_lang($mp_user_id) {
global $wpdb;
$q = $wpdb->prepare( "INSERT INTO $wpdb->mp_usermeta
(mp_user_id, meta_key, meta_value)
VALUES (%s, 'lang', %s)", $mp_user_id, WPLANG );
$wpdb->query( $q );
}
Mailpress小部件使用ajax。每当我在函数定义之前放置回声WPLANG时,它就会回应正确的语言,但是在该函数的范围内不能识别WPLANG。
请指教。
答案 0 :(得分:1)
可能尝试使用constant()
包装WPLANGadd_action( 'MailPress_insert_user', 'MailPress_insert_set_lang');
function MailPress_insert_set_lang($mp_user_id) {
global $wpdb;
$q = $wpdb->prepare( "INSERT INTO $wpdb->mp_usermeta
(mp_user_id, meta_key, meta_value)
VALUES (%s, 'lang', %s)", $mp_user_id, constant(WPLANG) );
$wpdb->query( $q );
}