ในตอนต้นของwp_insert_post
ฟังก์ชั่นที่ช่วยปรับปรุง / wp_insert_post_empty_content
โพสต์มีตัวกรองที่เรียกว่า ตามค่าเริ่มต้นตัวกรองนี้จะตรวจสอบว่าฟิลด์ชื่อตัวแก้ไขและข้อความที่ตัดตอนมาทั้งหมดว่างเปล่าหรือไม่ซึ่งในกรณีนี้กระบวนการบันทึกจะหยุดลง
อย่างไรก็ตามเนื่องจากฟิลด์ทั้งหมดที่จะบันทึกถูกส่งผ่านไปยังตัวกรองนี้คุณสามารถขยายตัวกรองนี้เพื่อรวมการทดสอบอื่น ๆ เพื่อพิจารณาว่าการโพสต์ควรจะถือว่าว่างเปล่าหรือไม่ มันจะเป็นอะไรเช่นนี้:
add_filter ('wp_insert_post_empty_content','wpse312975_check_unique_url',10,2);
function wpse312975_check_unique_url ($maybe_empty, $postarr) {
// extract custom field from $postarr, check uniqueness
if ($unique) return false else return true;
}
หมายเหตุ: ฟังก์ชั่นจะต้องส่งกลับ 'true' เพื่อหยุดกระบวนการบันทึก
หากฟิลด์ที่กำหนดเองไม่ซ้ำกันคุณอาจต้องการสะท้อนคำเตือน
132_url
ที่132
เป็นรหัสการโพสต์ กว่าคุณจะมีคุณค่าที่นี่เสมอ นอกจากนั้นควรบันทึกฟิลด์ที่กำหนดเองในการsave_post
ดำเนินการ ในการดำเนินการนี้คุณสามารถตรวจสอบฟิลด์ที่กำหนดเอง (ถ้ามันไม่ว่างเปล่าและมีค่าที่ไม่ซ้ำกัน) และขึ้นอยู่กับสิ่งนี้update_post_meta
หรือไม่ ผมคิดว่าคุณยังสามารถตรวจสอบข้อมูลที่กำหนดเองและถ้ามันไม่มีคุณค่าที่ไม่ซ้ำกันตั้งpost-status
ไปdraft
หรือสิ่งอื่นที่จะปิดการใช้งานการเผยแพร่ มิฉะนั้นฉันคิดว่าคุณต้องการ jQuery เพื่อทำสิ่งนี้