не могу получить доступ к константе - определить() - внутри functions.php в Wordpress. доступ дает неправильный результат

В 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 не распознается в рамках этой функции.

Пожалуйста, порекомендуйте.


person Kamil Zawadzki    schedule 01.09.2012    source источник


Ответы (1)


Возможно, попробуйте обернуть 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 );
}
person jmahony    schedule 09.11.2012
comment
оберните имя константы между ' или , иначе он будет генерировать предупреждения, и если он каким-то образом узнает значение константы (WPLANG), он попытается найти константу в зависимости от значения WPLANG - person VuesomeDev; 09.11.2012