WPML

WPML Sticky Links จะช่วยป้องกันไม่ให้ลิงก์ระหว่างหน้าและโพสต์เสีย แม้ว่าจะมีการย้ายหน้าหรือเปลี่ยนชื่อก็ตาม


WordPress ทำให้การเปลี่ยนที่อยู่ของหน้านั้นง่ายดายมาก ซึ่งทำให้ลิงก์ขาเข้าทั้งหมดเสีย (ข้อผิดพลาด 404) ต่อไปนี้คือการดำเนินการบางอย่างที่อาจส่งผลให้เกิดข้อผิดพลาด 404:
  • การเปลี่ยนหน้าหลักของหน้าเว็บ
  • การเปลี่ยนสลัก
  • การเปลี่ยนโครงสร้างลิงก์ถาวรของไซต์

WPML จะป้องกันไม่ให้การเปลี่ยนแปลง URL ทำให้ลิงก์ขาเข้าเสีย เมื่อคุณสร้างลิงก์ WPML จะทำให้เป็น sticky โดยอัตโนมัติ แทนที่จะจัดเก็บ URL ของหน้านั้น (ในเวลาที่สร้างลิงก์) ระบบจะจัดเก็บหมายเลขของหน้าแทน ซึ่งหมายเลขนี้จะไม่มีวันเปลี่ยนแปลง ไม่ว่าคุณจะทำอะไรก็ตาม

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

ภาพหน้าจอต่อไปนี้จะแสดงให้เห็นว่าลิงก์ภายในมีลักษณะอย่างไรในฐานข้อมูล เมื่อเปิดใช้งาน Sticky Links แล้ว

ลิงก์ที่ถูกเปลี่ยนให้เป็น Sticky โดย WPML เมื่อดูภายในตัวแก้ไขแบบบล็อก
ลิงก์ที่ถูกเปลี่ยนให้เป็น Sticky โดย WPML เมื่อดูภายในตัวแก้ไขแบบบล็อก
ลิงก์ที่ถูกเปลี่ยนให้เป็น Sticky โดย WPML เมื่อดูภายในตัวแก้ไขแบบคลาสสิก
ลิงก์ที่ถูกเปลี่ยนให้เป็น Sticky โดย WPML เมื่อดูภายในตัวแก้ไขแบบคลาสสิก

ผู้ใช้ของคุณจะไม่มีวันเห็นลิงก์ที่ "แปลกประหลาด" เหล่านี้ เนื่องจาก WPML จะแทนที่ด้วยลิงก์ถาวรปัจจุบันเมื่อแสดงหน้าเว็บ
เมื่อคุณเปิดใช้งานโมดูล Sticky Links แล้ว คุณจะสามารถควบคุมสตริงที่โมดูลจัดการได้ โดยไปที่หน้า WPMLSticky links
Sticky Links ก่อนการประมวลผล
Sticky Links ก่อนการประมวลผล

ตามค่าเริ่มต้น WPML จะเปลี่ยนลิงก์ทั้งหมดในเนื้อหาโพสต์ให้เป็น sticky links นอกจากนี้ คุณยังสามารถเปลี่ยนลิงก์ในวิดเจ็ตและสตริงให้เป็น sticky links ได้ด้วย

WPML ช่วยให้คุณสามารถแทนที่ลิงก์ปกติทั้งหมดให้เป็น sticky links ได้แบบกลุ่ม นอกจากนี้ยังจะรายงานลิงก์ที่เสียอยู่และช่วยแก้ไขให้ด้วย

หากคุณเปิดใช้งาน Sticky Links หลังจากที่สร้างเนื้อหาบางส่วนไปแล้ว ลิงก์ในเนื้อหาที่มีอยู่นั้นจะไม่ถูกเปลี่ยนเป็น sticky links ในทันที

หน้าจอจัดการเว็บไซต์ของ Sticky Links จะบอกคุณว่ามีเนื้อหาจำนวนเท่าใดที่อาจมีลิงก์ปกติ (ไม่ใช่ sticky links) รวมอยู่ WPML สามารถสแกนเนื้อหานั้นและแปลงลิงก์ทั้งหมดให้เป็น sticky links ได้ โดยคลิกที่ปุ่ม สแกน เพื่อดำเนินการดังกล่าว

คุณสามารถเปลี่ยนลิงก์กลับไปเป็นลิงก์ถาวรแบบปกติ (ไม่ใช่ sticky links) ได้เสมอโดยคลิกที่ Revert sticky URLs to permalinks

การลิงก์ไปยังหน้าในภาษาอื่น


ในบางครั้ง คุณอาจต้องการแทรกลิงก์ไปยังหน้าที่อยู่ในภาษาอื่น เนื่องจาก Sticky Links จะปรับลิงก์โดยอัตโนมัติ จึงอาจทำให้คุณไม่สามารถทำเช่นนี้ได้ และปรับลิงก์ให้ชี้ไปยังภาษาเดียวกันแทน

เพื่อให้สามารถเพิ่มลิงก์ไปยังหน้าในภาษาอื่นได้ คุณต้องเพิ่มฟิลเตอร์ต่อไปนี้ลงในไฟล์ functions.php ของธีมของคุณ

อนุญาตให้ลิงก์ไปยังหน้าในภาษาอื่น
add_filter( 'wpml_sl_blacklist_requests', 'wpml_sl_blacklist_requests', 10, 2 );

function wpml_sl_blacklist_requests( $blacklist, $sitepress ) {
    $blacklist[] = 'documentation';
    return $blacklist;
}

ในโค้ดด้านบน ให้ใช้อาร์เรย์ $blacklist เพื่อระบุสลัก URL ทั้งหมดสำหรับหน้าในภาษาต้นฉบับที่คุณต้องการลิงก์ไป

ในตัวอย่างของเรา เราต้องการลิงก์ไปยังหน้า "Documentation" (สลัก "documentation") และ "Page Builders" (สลัก "page-builders") ในเวอร์ชันภาษาอังกฤษ ดังนั้นเราจึงใช้สองบรรทัดต่อไปนี้:

ตัวอย่างการระบุรายการ URL เพื่ออนุญาตให้ลิงก์ไป
$blacklist[] = 'documentation';

$blacklist[] = 'page-builders';

ตามค่าเริ่มต้น ปลั๊กอิน Sticky Links จะไม่ค้นหาลิงก์ที่สร้างโดย shortcode

หากคุณมีชอร์ตโค้ดบนหน้าเว็บที่สร้างลิงก์เช่น "?page_id=XX" ลิงก์ดังกล่าวจะแสดงให้ผู้ใช้ของคุณเห็นโดยไม่ถูกแปลงเป็นลิงก์ถาวร

หากต้องการจัดการเนื้อหา shortcode เหล่านี้ด้วย Sticky Links ให้เพิ่มข้อมูลโค้ดนี้ลงในไฟล์ functions.php ของคุณ:

จัดการลิงก์ภายในเนื้อหาชอร์ตโค้ด
if ( class_exists( 'WPML_Sticky_Links' ) ) {
	global $WPML_Sticky_Links;
	add_filter( 'do_shortcode_tag', [ $WPML_Sticky_Links, 'show_permalinks' ], 0 );
}

เขียนโดย Amir · อัปเดตล่าสุด 19 กุมภาพันธ์ 2025