कभी-कभी, डिफ़ॉल्ट कस्टम पोस्ट प्रकार फ़ील्ड पर्याप्त नहीं होते, और आपको कस्टम पोस्ट प्रकार में अतिरिक्त डेटा संग्रहीत करने की आवश्यकता होती है।
सौभाग्य से, WordPress पोस्ट मेटाडेटा नामक सुविधा का समर्थन करता है, जो आपको किसी पोस्ट के बारे में अतिरिक्त जानकारी संग्रहीत करने देती है।
आइए देखें कि आप किसी पोस्ट या कस्टम पोस्ट प्रकार पर पोस्ट मेटाडेटा का उपयोग कैसे कर सकते हैं।
पोस्ट मेटाडेटा क्या है
पोस्ट मेटाडेटा WordPress डेटाबेस में किसी पोस्ट के बारे में अतिरिक्त जानकारी संग्रहीत करने का एक तरीका है।
पोस्ट मेटाडेटा postmeta तालिका में कुंजी-मान युग्मों के रूप में संग्रहीत किया जाता है। यदि आप WordPress डेटाबेस में postmeta तालिका को देखें, तो आपको इसमें चार कॉलम दिखाई देंगे: meta_id, post_id, meta_key, और meta_value।
post_id उस पोस्ट की ID है जिससे मेटाडेटा संबद्ध है। meta_key मेटाडेटा फ़ील्ड का नाम है, और meta_value उसका मान है।
पोस्ट मेटाडेटा जोड़ना
आप add_post_meta फ़ंक्शन का उपयोग करके किसी पोस्ट में पोस्ट मेटा जोड़ सकते हैं। यह फ़ंक्शन तीन पैरामीटर लेता है: पोस्ट की ID, मेटाडेटा का नाम और मेटाडेटा का मान।
मान लीजिए कि आप 1 ID वाली पोस्ट में पोस्ट मेटा फ़ील्ड जोड़ना चाहते हैं और पोस्ट लिखे जाने का स्थान London के रूप में संग्रहीत करना चाहते हैं।
आप निम्नलिखित कोड का उपयोग कर सकते हैं:
add_post_meta( 1, 'location', 'London' );
पोस्ट मेटा के साथ काम करने के लिए अन्य फ़ंक्शन भी हैं, जैसे update_post_meta, delete_post_meta, और get_post_meta।
आप इनके बारे में और प्लगइन में इनका उपयोग करने के तरीके के बारे में Plugin developer handbook के Metadata पृष्ठ पर अधिक पढ़ सकते हैं।
कस्टम फ़ील्ड पैनल
कोड के माध्यम से पोस्ट मेटाडेटा जोड़ना एक तरीका है, लेकिन साइट एडमिनिस्ट्रेटरों को WordPress एडमिन इंटरफ़ेस के माध्यम से पोस्ट मेटाडेटा जोड़ने की सुविधा देना भी संभव है।
ऐसा करने का एक तरीका पोस्ट प्रकार के लिए कस्टम फ़ील्ड पैनल है।
कस्टम फ़ील्ड पैनल सक्षम करने के लिए, आपको पहले यह सुनिश्चित करना होगा कि आपका कस्टम पोस्ट प्रकार मेटाडेटा का समर्थन करता है।
ऐसा करने के लिए, आपको supports तर्क को जोड़ना या अपडेट करना होगा, ताकि इसमें custom-fields का समर्थन शामिल हो।
फिर, कस्टम पोस्ट प्रकार को संपादित करते समय, संपादक के Options आइकन पर क्लिक करें, Preferences चुनें, Panels पर क्लिक करें और Custom Fields टॉगल सक्षम करें।
इससे संपादक रीफ़्रेश होगा और आपको स्क्रीन के निचले हिस्से में Custom Fields पैनल दिखाई देगा।
यहाँ आप एक नया कस्टम फ़ील्ड जोड़ सकते हैं और उसे एक नाम और मान दे सकते हैं।
उदाहरण के लिए, यदि आप किसी पुस्तक का ISBN नंबर जोड़ना चाहते हैं, तो आप isbn नाम और ISBN नंबर के मान वाला एक नया कस्टम फ़ील्ड जोड़ सकते हैं।
यह पैनल पोस्ट में मेटाडेटा जोड़ने के लिए add_post_meta फ़ंक्शन का उपयोग करता है।
कस्टम फ़ील्ड पैनल के लिए पहले से भरे हुए फ़ील्ड नाम
कस्टम फ़ील्ड पैनल के Name फ़ील्ड को पहले से निर्धारित मेटा फ़ील्ड की सूची से भरना भी संभव है।
ऐसा करने के लिए, आपको postmeta_form_keys फ़िल्टर में हुक करना होगा और उन मेटा फ़ील्ड के नाम जोड़ने होंगे जिन्हें आप कस्टम फ़ील्ड पैनल में प्रदर्शित करना चाहते हैं।
postmeta_form_keys फ़िल्टर कस्टम फ़ील्ड पैनल का HTML रेंडर होने से पहले सक्रिय होता है और दो पैरामीटर भेजता है: मेटा कुंजियों की एक array और पोस्ट ऑब्जेक्ट।
यदि कोई अन्य कुंजियाँ परिभाषित नहीं हैं, तो पोस्ट के लिए किसी भी मौजूदा मेटाडेटा की कुंजियाँ प्राप्त करने हेतु एक query चलाई जाएगी।
इसलिए मेटा कुंजियों की array को अपडेट करके, आप कस्टम फ़ील्ड पैनल में मेटा फ़ील्ड कुंजियाँ जोड़ सकते हैं, जिससे आपके उपयोगकर्ताओं के लिए सही मेटाडेटा जोड़ना आसान हो जाएगा।
आप यह इस प्रकार कर सकते हैं:
add_filter( 'postmeta_form_keys', 'bookstore_add_isbn_to_quick_edit', 10, 2 );
function bookstore_add_isbn_to_quick_edit( $keys, $post ) {
if ( $post->post_type === 'book' ) {
$keys[] = 'isbn';
}
return $keys;
}
आप postmeta_form_keys फ़िल्टर पर एक callback फ़ंक्शन पंजीकृत करते हैं और अपने स्वीकृत तर्कों की संख्या 2 निर्धारित करते हैं, ताकि फ़िल्टर से दोनों तर्क स्वीकार किए जा सकें।
फिर जाँचें कि पोस्ट का प्रकार book है या नहीं, और यदि है, तो isbn विकल्प को $keys array में जोड़ें और फिर वह array लौटाएँ।
यदि पोस्ट का प्रकार book है, तो यह isbn मेटा फ़ील्ड को कस्टम फ़ील्ड पैनल में जोड़ देगा।
यदि आप कस्टम फ़ील्ड पैनल सक्षम होने के साथ कोई पुस्तक बनाते या संपादित करते हैं, तो आपको पोस्ट में मेटाडेटा जोड़ने के लिए उपलब्ध isbn फ़ील्ड दिखाई देगा।
कस्टम मेटा बॉक्स
साइट एडमिनिस्ट्रेटरों को पोस्ट मेटा जोड़ने की अनुमति देने का एक और तरीका कस्टम मेटा बॉक्स का उपयोग करना है।
हालाँकि, कस्टम मेटा बॉक्स के साथ काम करने के लिए सुरक्षा को ध्यान में रखते हुए विकास करने की अच्छी समझ भी आवश्यक है, लेकिन फिलहाल आप इनके बारे में Plugin developer handbook के Custom Meta Boxes पृष्ठ पर पढ़ सकते हैं।
आप plugin developer learning pathway में मेटा बॉक्स के साथ काम करना सीखेंगे।