WPML
$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 รายการ →