1

wp-config.phpで、WPLANGを次のように定義しました。

if(isset($_GET['lang']) && $_GET['lang'] == 'pl') {
  define('WPLANG', 'pl_PL');
} else {
  define('WPLANG', 'en_US');
}

WPLANGにアクセスするときはいつでも完全に機能しますが、メールプレスウィジェットからメタデータを追加しようとすると、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を使用します。関数定義の前にechoWPLANGを置くと、正しい言語がエコーされますが、WPLANGはその関数のスコープ内で認識されません。

お知らせ下さい。

4

1 に答える 1

1

おそらく、WPLANGをconstant()でラップしてみてください

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 に答える