การตั้งค่า WPLANG จากปลั๊กอิน


11

สำหรับไซต์ wordpress เดียวต้องตั้งค่าภาษาจากwp-config.php's WPLANGแต่มันเป็นไปได้ที่จะตั้งจากปลั๊กอินของฉันซึ่งแทนที่ค่าเริ่มต้น?


1
ลิงค์นี้ปรากฏที่คอลัมน์ด้านขวาของหน้านี้ด้วย แต่ฉันคิดว่ามันควรค่าแก่การสังเกตในความคิดเห็นอีกวิธีหนึ่งสำหรับสถานการณ์ที่คล้ายกัน: wordpress.stackexchange.com/a/53678/12615
brasofilo

คำตอบ:


16

ในที่คุณจะได้พบกับฟังก์ชั่นwp-includes/l10n.php get_locale()มันมีตัวกรอง คุณสามารถตั้งค่าภาษาและละเว้นค่าคงที่:

function get_locale() {
    global $locale;

    if ( isset( $locale ) )
        return apply_filters( 'locale', $locale );

    // WPLANG is defined in wp-config.
    if ( defined( 'WPLANG' ) )
        $locale = WPLANG;

    // If multisite, check options.
    if ( is_multisite() ) {
        // Don't check blog option when installing.
        if ( defined( 'WP_INSTALLING' ) || ( false === $ms_locale = get_option( 'WPLANG' ) ) )
            $ms_locale = get_site_option('WPLANG');

        if ( $ms_locale !== false )
            $locale = $ms_locale;
    }

    if ( empty( $locale ) )
        $locale = 'en_US';

    return apply_filters( 'locale', $locale );
}

'locale'ที่จะเปลี่ยนมันต่อการใช้งานปลั๊กอินตัวกรอง ตัวอย่าง:

add_filter( 'locale', 'wpse_52419_change_language' );
function wpse_52419_change_language( $locale )
{
    return 'de_DE';
}

ทำงานเหมือนเวทมนตร์ Fatal error: Cannot redeclare get_locale()แต่ในกรณีของฉันก็กลับข้อผิดพลาด: ดังนั้นฉันจึงเปลี่ยนชื่อฟังก์ชั่นจากget_locale()เป็นnano_get_locale()และมันทำงานได้อย่างยอดเยี่ยม
Mayeenul Islam

3
@MayeenulIslam คุณไม่ควรคัดลอกget_locale()ฟังก์ชันนั่นเป็นคำพูดจากแกนกลาง สิ่งที่คุณต้องมีคือการบล็อกรหัสสุดท้าย
fuxia

great @toscho ขอบคุณมาก อย่างไรก็ตามสิ่งนี้ไม่สามารถใช้งานได้หากฉันเปิด OPCache บน MAMPpro ในพื้นที่ของฉัน ... มันเป็นเช่นนั้นหรือมีวิธีแก้ปัญหาหรือไม่?
Raphael Jeger

@RaphaelJeger สิ่งนี้ไม่สามารถได้รับผลกระทบจาก OPCache มีเพียงแค่ chache เอาต์พุตเท่านั้นที่ทำได้ หากคุณยังมีปัญหานี้ให้ถามคำถามใหม่
fuxia
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.