की शुरुआत में 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;
}
नोट: फ़ंक्शन को सहेजने की प्रक्रिया को रोकने के लिए 'सही' लौटना चाहिए।
यदि कस्टम फ़ील्ड अद्वितीय नहीं है, तो आप चेतावनी को प्रतिध्वनित करना चाहते हैं।
132_urlकहां132है। आपकी तुलना में यहाँ हमेशा एक अद्वितीय मूल्य है। इसके अलावा: कस्टम फ़ील्ड कोsave_postकार्रवाई में सहेजा जाना चाहिए । इस क्रिया में आप कस्टम फ़ील्ड की जाँच कर सकते हैं (यदि इसका खाली नहीं है और उदाहरण के लिए एक अद्वितीय मान है), और इसके आधार परupdate_post_metaया नहीं। मुझे लगता है कि आप कस्टम फ़ील्ड को भी देख सकते हैं और यदि इसका कोई अनूठा मूल्य नहीं है, तो प्रकाशन को अक्षम करने केpost-statusलिएdraftया कुछ और सेट करें । अन्यथा मुझे लगता है कि आपको ऐसा करने के लिए jQuery की आवश्यकता है।