无法访问常量 - define() - 在Wordpress中的functions.php中。访问给出了错误的结果

时间:2012-09-01 18:14:24

标签: php wordpress constants qtranslate

在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。

请指教。

1 个答案:

答案 0 :(得分: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 );
}