WPML
apply_filters( 'wpml_language_codes_map', array $map )
ประเภท
filter
เวอร์ชัน WPML
5.0.0

คำอธิบาย

กรองแมปที่จับคู่รหัสภาษากับรหัสที่ WPML ใช้ใน URL

ภาษาจะมีรหัสสองชุดใน WPML 5.0 โดย language_code คือรหัสที่จัดเก็บไว้และจะไม่มีการเปลี่ยนแปลง รหัส URL คือส่วนที่ผู้เยี่ยมชมมองเห็น ตัวอย่างเช่น /de-de/ รหัสทั้งสองจะแตกต่างกันเมื่อ WPML ระบุคุณสมบัติเฉพาะให้รหัส URL ซึ่งจะเกิดขึ้นเมื่อคุณเพิ่มสองประเทศของภาษาเดียวกันในขั้นตอนเดียว และเมื่อเจ้าของเว็บไซต์แก้ไขรหัส URL

ฟิลเตอร์นี้คือแมปที่ตัวแปลง URL อ่านข้อมูล ดังนั้นจึงไม่มีทางขัดแย้งกับลิงก์ที่ WPML สร้างขึ้น ใช้ฟิลเตอร์นี้เพื่อดูที่อยู่ของภาษา หากต้องการอ่านข้อมูลทั้งหมดของภาษาที่ใช้งานอยู่ รวมถึงธงและ URL แบบเต็ม ให้ใช้ wpml_active_languages

คุณสร้างแมปขึ้นมาและ WPML จะเขียนทับแมปนั้น WPML จะแทนที่ค่าของทุกคีย์ที่ระบบรู้จักด้วยรหัส URL ของภาษานั้น และปล่อยคีย์อื่น ๆ ไว้ตามที่คุณส่งมา WPML จะไม่เพิ่มภาษาเข้าไป ดังนั้นอาร์เรย์ว่างจะถูกส่งกลับมาเป็นอาร์เรย์ว่าง ให้สร้างแมปก่อนเป็น WPML code => WPML code แล้วจึงใช้ฟิลเตอร์ WPML ก็ทำเช่นเดียวกันในโค้ดของตัวเอง

อาร์กิวเมนต์

พารามิเตอร์
  • $map(array) แมปของ WPML code => code ที่คุณสร้างขึ้นเอง WPML จะแทนที่ค่าของแต่ละคีย์ที่รู้จักด้วยรหัส URL ของภาษานั้น คีย์ที่ WPML ไม่รู้จักจะยังคงค่าที่คุณส่งผ่านไว้
ส่งคืน
(array) แมปเดียวกัน พร้อมรหัส URL ของแต่ละภาษาที่ WPML รู้จัก WPML จะไม่เพิ่มคีย์ใด ๆ ดังนั้นให้ส่งผ่านทุกภาษาที่คุณต้องการอ่าน

ตัวอย่างการใช้งาน

อ่านแมปเพื่อดูว่าภาษาใช้เซกเมนต์ URL ใด ตัวอย่างนี้เขียนหนึ่งบรรทัดต่อภาษา โดยจะอ่านรายการภาษาด้วย wpml_active_languages ดังนั้นจึงทำงานหลังจากแอ็กชัน wp เหมือนกับฟิลเตอร์นั้น

ตัวอย่าง
function my_language_url_codes() {
    $codes = apply_filters( 'wpml_active_languages', null );
    if ( empty( $codes ) ) {
        return;
    }

    $identity = array_combine( array_keys( $codes ), array_keys( $codes ) );
    $map      = apply_filters( 'wpml_language_codes_map', $identity );

    foreach ( $map as $language_code => $url_code ) {
        echo esc_html( $language_code . ' is served at /' . $url_code . '/' ) . '<br />';
    }
}

หากต้องการเปลี่ยนรหัส URL ของภาษา ให้แก้ไขใน WPML » การตั้งค่า » ภาษา อย่าใช้ฟิลเตอร์นี้เพื่อย้ายภาษาไปยังที่อยู่อื่น: WPML จะอ่านแมปเมื่อแยกวิเคราะห์ URL ขาเข้าและเมื่อสร้างลิงก์ ดังนั้นค่าที่ไม่มีภาษาใดเป็นเจ้าของจะสร้างที่อยู่ที่ WPML ไม่สามารถระบุได้

wpml_decode_custom_field, wpml_footer_language_selector, wpml_add_language_form_field, wpml_ls_exclude_in_menu, wpml_is_rtl, wpml_alternate_hreflang, wpml_head_langs, wpml_must_translate_canonical_url, wpml_browser_redirect_language_params, wpml_active_languages

ฮุก ข้อมูลภาษาทั่วทั้งไซต์ ทั้งหมด 30 ตัว