wpml_browser_redirect_language_params
- ประเภท
- filter
- หมวดหมู่
- ข้อมูลภาษาทั่วทั้งไซต์
- เวอร์ชันของ WPML
- 4.0.6
คำอธิบาย
ฟิลเตอร์นี้สามารถนำมาใช้ได้เมื่อนักพัฒนาธีมต้องการใช้ชื่อคุกกี้อื่น หรือปรับแต่งอาร์เรย์ languageUrls เพื่อใช้ URL อื่น
โดยจะใช้อาร์กิวเมนต์ $params ซึ่งเป็น associative array ที่ประกอบด้วยข้อมูลเกี่ยวกับภาษาปัจจุบัน ภาษาที่ใช้งานอยู่ และการตั้งค่าคุกกี้
อาร์กิวเมนต์
- pageLanguage
- เก็บข้อมูลรหัสภาษาปัจจุบัน
- languageUrls
- เก็บข้อมูล associative array ที่มี URL การแปลทั้งหมดของหน้าปัจจุบัน คีย์ของอาร์เรย์คือรหัสภาษา ภาษาเดียวกันสามารถมีหลายรายการเพื่อให้ตรงกับรูปแบบของรหัสภาษาที่แตกต่างกัน ตัวอย่างเช่น ในกรณีของ
en_USURL เดียวกันจะถูกแสดงซ้ำสามครั้งด้วยคีย์ต่อไปนี้:en_us,enและus - cookie
- เก็บข้อมูล associative array พร้อมการตั้งค่าคุกกี้ โปรดดูรายละเอียดเพิ่มเติมที่ Document.cookie คีย์ประกอบด้วย:
- name: ชื่อของคุกกี้ (ค่าเริ่มต้นคือ
_icl_visitor_lang_js) - domain: โดเมนที่ต้องใช้คุกกี้ (ค่าเริ่มต้นคือโดเมนปัจจุบันและไม่ได้มีไว้สำหรับเปลี่ยนแปลง)
- path: เส้นทางของคุกกี้ (ค่าเริ่มต้นคือ
/) - expiration: เวลาหมดอายุในหน่วยวินาทีจะถูกอ่านจากค่าที่ตั้งไว้ใน Remember visitors’ language preference ซึ่งพบได้ใน การเปลี่ยนเส้นทางตามภาษาของเบราว์เซอร์ บน WPML -> ภาษา
- name: ชื่อของคุกกี้ (ค่าเริ่มต้นคือ
ตัวอย่างการใช้งาน
ในการใช้ฟิลเตอร์นี้ ต้องเปิดใช้งาน การเปลี่ยนเส้นทางตามภาษาของเบราว์เซอร์ บน WPML -> ภาษา
โค้ดต่อไปนี้สามารถใช้เพื่อเปลี่ยนเส้นทางเบราว์เซอร์ไปยังหน้าแรกสำหรับโพสต์เมื่อมีการเปลี่ยนภาษาเป็นภาษาที่ระบุ
function example_callback( $params ) {
global $post;
// Redirect the French language to the home page if the current page ID is 123
if ( $post->ID === 123 ) {
$params['pageLanguage'] = 'en';
$params['languageUrls'] = [ 'fr' => 'http://example.com/fr/' ];
}
return $params;
}
add_filter( 'wpml_browser_redirect_language_params', 'example_callback' );
ฮุกที่เกี่ยวข้อง
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_active_languages, wpml_encode_custom_field