1

在 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。每当我将 echo WPLANG 放在函数定义之前,它都会回显正确的语言,但是在该函数的范围内无法识别 WPLANG。

请指教。

4

1 回答 1

1

可能尝试用 constant() 包装 WPLANG

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, constant(WPLANG) );
    $wpdb->query( $q );
}
于 2012-11-09T13:42:54.010 回答