การตั้งค่าในหน้า Settings > Discussion (หรือการกำหนดผ่าน Database Option) กับการเพิ่มโค้ด จัดการปัญหาคนละจุดกันอย่างสิ้นเชิง
ความแตกต่างของกลไกการทำงาน
| จุดประสงค์ | ตั้งค่าใน Admin / Config | เพิ่มโค้ด (Hook pre_ping) |
| หน้าที่ | จัดการ “ขาเข้า” (Inbound) | จัดการ “ขาออก” (Outbound) |
| สิ่งที่ทำ | กำหนดว่าบล็อกของเราจะ ยอมรับ Pingback จากเว็บอื่นหรือไม่ | คัดกรองรายการลิงก์ในบทความ ก่อนส่งคำขอออกไป |
| ระดับการคุม | เป็นแค่การตั้งค่า Flag ในระดับบทความ | แทรกแซง Workflow การประมวลผลของ WordPress Core |
ช่องโหว่ของการปิดผ่าน Config เพียงอย่างเดียว
การเอาติ๊กถูกออกที่ “Allow link notifications from other blogs (pingbacks and trackbacks) on new posts” มีข้อจำกัด 3 เรื่อง
- มีผลเฉพาะบทความใหม่
การแก้ใน Settings จะเปลี่ยนเฉพาะค่าเริ่มต้นของบทความที่จะเขียนหลังจากนั้น บทความเก่าที่มีอยู่แล้วยังคงเปิดรับ Pingback อยู่เหมือนเดิม (ต้องไปไล่แก้ทีละโพสต์หรือ Bulk Edit) - ระบบยังคง “ส่งออก” ไปข้างนอกอยู่ดี
ตัวเลือก “Attempt to notify any blogs linked to…” แม้จะปิดไว้ แต่หากคุณลิงก์ไปยังเว็บอื่นหรือเว็บย่อยในเครือข่าย ในหลายเวอร์ชันกระบวนการตรวจจับ URL ภายในเนื้อหาก็ยังถูก Parse อยู่เบื้องหลัง - โดเมนย่อยและ Redirect (เช่น
plusmagi.com->pitt.plusmagi.com)
หากคุณเขียนบทความบนpitt.plusmagi.comแล้วทำลิงก์เก่าที่เป็นplusmagi.comหรือ[www.plusmagi.com](https://www.plusmagi.com)WordPress จะไม่ถือว่าเป็นโดเมนเดียวกัน และจะยังพยายามยิง HTTP Request ออกไปหาปลายทางตามปกติ
เหตุผลที่ต้องใช้โค้ด (หรือปิดที่ Web Server / XML-RPC)
- หยุดกระบวนการตั้งแต่ต้นทาง (Zero Overhead)
การใช้ Hookpre_pingจะไปตัด URL ของเครือข่ายตัวเองออกจาก Array คิวก่อนที่ WordPress จะเริ่มสร้าง HTTP Request ทำให้เซิร์ฟเวอร์ไม่ต้องเสีย Thread, เวลา หรือ Connection ไปเชื่อมต่อกับตัวเอง - แก้ปัญหาแบบเด็ดขาด ไม่ขึ้นกับสถานะของบทความ
ไม่ว่าบทความนั้นจะถูกเปิดหรือปิดสถานะ Pings ไว้ โค้ดระดับนี้จะบังคับควบคุมทราฟฟิกขาออกเสมอ - ป้องกันระดับเซิร์ฟเวอร์
หากปิดที่ Nginx (location = /xmlrpc.php { return 444; }) ไปแล้ว WordPress ในเครื่องที่พยายามส่ง Pingback หาตัวเองจะเจอตอ (Connection Dropped) และอาจเกิด Error Log หรือ Timeout ค้างในคิว Background Task การใส่ Hook ฝั่ง PHP จึงเป็นการตัดวงจรอย่างสมบูรณ์แบบทั้งขาเข้าและขาออก
อ่านเพิ่มเติม