$converted_url = apply_filters( 'wpml_permalink', string $permalink, string $language_code = null, bool $full_resolution = false );
- ประเภท
- filter
- เวอร์ชันของ WPML
- 3.2.2
คำอธิบาย
กรองลิงก์ถาวรของ WordPress และแปลงเป็นลิงก์ถาวรเฉพาะภาษาตามรูปแบบ URL ภาษาที่ตั้งค่าไว้ในการตั้งค่าภาษาของ WPML
ซึ่งหมายความว่าเมื่อตั้งค่า “รูปแบบ URL ภาษา” เป็น “ภาษาที่แตกต่างกันในไดเรกทอรี” ลิงก์ถาวรจะถูกส่งคืนในรูปแบบ http://domain.com/de เมื่อเลือก “โดเมนที่แตกต่างกันในแต่ละภาษา” ลิงก์ถาวรจะถูกแปลงเพื่อรวมโดเมนที่ถูกต้องที่กำหนดให้กับภาษาที่ร้องขอ
อาร์กิวเมนต์
- $permalink
- (string) (จำเป็น) URL ที่สร้างโดย WordPress เพื่อฟิลเตอร์
- $language_code
- (string) (ไม่บังคับ) ภาษาที่จะแปลง URL ให้เป็นภาษานั้น ยอมรับรหัสแบบ 2 ตัวอักษร เมื่อตั้งค่าเป็น
nullจะกลับไปใช้ภาษาเริ่มต้นสำหรับหน้ารูท หรือภาษาปัจจุบันในกรณีอื่น ๆ ทั้งหมด ค่าเริ่มต้นคือnull - $full_resolution
- (boolean) (ไม่บังคับ) เปิดใช้งานการแปลง URL ที่เขียนฮาร์ดโค้ดไว้แบบเต็มรูปแบบ
ตัวอย่างการใช้งาน
ตัวอย่างที่ 1
ตัวอย่างเช่น หากเราเลือก “ภาษาที่แตกต่างกันในไดเรกทอรี” เราสามารถใช้โค้ดต่อไปนี้:
// will return http://domain.com/de/contact $wpml_permalink = apply_filters( 'wpml_permalink', 'http://domain.com/contact', 'de' );
ตัวอย่างที่ 2
เรามีหน้า http://example.org/hello/ และคำแปลคือ http://example.org/fr/bonjour/ สมมติว่าเรากำลังเรียกใช้ฟิลเตอร์ขณะที่เรากำลังแสดงหน้าแรก http://example.org
// displays http://example.org/fr/hello/ (wrong) echo apply_filters( 'wpml_permalink', 'http://example.org/hello/', 'fr' ); // displays http://example.org/fr/bonjour/ (correct) echo apply_filters( 'wpml_permalink', 'http://example.org/hello/', 'fr', true );
หมายเหตุสำคัญเกี่ยวกับตัวอย่างที่สอง:
- การแปลงแบบเต็มรูปแบบเป็นกระบวนการที่ทำงานหนัก ดังนั้น WPML จึงต้องบันทึก URL ที่แปลงแล้วลงในฐานข้อมูล การเรียกใช้ wpml_permalink ครั้งแรกจะเพิ่มการสืบค้นฐานข้อมูลและเวลาในการโหลดอย่างมาก แต่การเรียกใช้ครั้งต่อ ๆ ไปจะไม่ทำให้กระบวนการทำงานหนักเกินไป
- ข้อมูลที่บันทึกในฐานข้อมูลจะถูกล้างบางส่วนเมื่อมีการอัปเดตหรือลบโพสต์/เทอม และจะถูกล้างทั้งหมดเมื่อไปที่ การตั้งค่า -> ลิงก์ถาวร (นี่เป็นตัวเลือกการแก้ปัญหาที่ดีในกรณีที่คุณพบปัญหาใด ๆ)
- ในกรณีที่ไม่สามารถแปลง URL ได้ ฟิลเตอร์ wpml_permalink จะส่งคืน URL ต้นฉบับ
ฮุกที่เกี่ยวข้อง
wpml_media_url, wpml_media_id, force_suppress_filters, wpml_get_translated_slug, wpml_home_url, wpml_translate_single_string, wpml_translate_string, wpml_elements_without_translations, wpml_unfiltered_admin_string, wpml_element_link
ฮุก การดึงเนื้อหาที่ปรับให้เข้ากับท้องถิ่น ทั้งหมด 12 รายการ →