वर्डप्रेस कस्टम मेटा बॉक्स को समझना
पिछले पोस्ट में, हमने वर्डप्रेस कस्टम फील्ड के बारे में बात की है, जो आपको कस्टम फील्ड बॉक्स का उपयोग करके पोस्ट में एक नई प्रविष्टि जोड़ने और आउटपुट करने की अनुमति देता है जो वर्डप्रेस पोस्ट एडिटिंग स्क्रीन में प्रदान करता है। यदि आप कस्टम फ़ील्ड बॉक्स (हम सभी की व्यक्तिगत प्राथमिकताएँ हैं) का उपयोग करके सहज नहीं हैं, तो यहाँ एक विकल्प है: आप एक मेटा बॉक्स बना सकते हैं.
एक मेटा बॉक्स एक है अनुकूलित बॉक्स हम अपने दम पर बनाते हैं, जो हो सकता है नई प्रविष्टियाँ जोड़ने के लिए इनपुट या अन्य इंटरएक्टिव यूआई शामिल हैं पोस्ट या पृष्ठों की। आप समान कार्य करने के लिए कस्टम फ़ील्ड बॉक्स के बजाय मेटा बॉक्स का उपयोग कर सकते हैं। आइए देखें कि कैसे बनाएं.
Hongkiat.com पर अधिक:
- वर्डप्रेस में मीडिया अपलोड निर्देशिका को अनुकूलित करें
- वर्डप्रेस संपादक शैलियों को अनुकूलित करें
- अनुकूलित करें “कैसे हो” वर्डप्रेस एडमिन बार में
- वर्डप्रेस उपयोगकर्ताओं के लिए कस्टम टैक्सोनॉमी पंजीकृत करें
- वर्डप्रेस मेनू में आइकन प्रदर्शित करें
एक मेटा बॉक्स बनाना
वर्डप्रेस एक एपीआई फ़ंक्शन को नामित करता है, जिसे कहा जाता है add_meta_box
, जो हमें सीधे एक मेटा बॉक्स बनाने देता है। यह अपने परम मूल रूप में है.
function add_post_reference () add_meta_box ('पोस्ट-रेफरेंस', 'संदर्भ', 'referenceCallBack', 'पोस्ट'); add_action ('add_meta_boxes', 'add_post_reference'); फंक्शन रेफरेंसब्लैक () गूंज 'हैलो वर्ल्ड'
add_meta_box
चार पैरामीटर लेता है: आईडी, मेटा बॉक्स शीर्षक, एक कॉलबैक फ़ंक्शन जो 'हैलो वर्ल्ड' को कॉल करेगा, और पोस्ट प्रकार जिसे हम प्रदर्शित करना चाहते हैं। इस मामले में हम एक पोस्ट संपादन पृष्ठ में एक नया मेटा बॉक्स असाइन करते हैं (यह पृष्ठों के साथ भी काम करता है).
पोस्ट एडिटिंग सेक्शन में, आपको एक नया बॉक्स मिलेगा, जो निम्नानुसार है.
नया मेटा बॉक्स, जैसा कि आप ऊपर देख सकते हैं, WYSIWYG संपादक के नीचे दिखाई देगा। यदि आप इसे साइडबार में जोड़ना चाहते हैं, तो आप पोस्ट पैरामीटर के बाद 'साइड' जोड़ सकते हैं, और 'हाई' के साथ यदि आप इसे साइडबार के शीर्ष पर रखना चाहते हैं.
function add_post_reference () add_meta_box ('पोस्ट-रेफरेंस', 'संदर्भ', 'ReferenceCallBack', 'post', 'side', 'high'); add_action ('add_meta_boxes', 'add_post_reference');
अब आप इसे ऊपर पाएंगे प्रकाशित करना डिब्बा…
अब वहां 'हैलो वर्ल्ड' टेक्स्ट को बदलना है। नई प्रविष्टि के लिए इनपुट फ़ील्ड जैसे तत्वों को जोड़ते हैं.
इस उदाहरण में, हम दो इनपुट फ़ील्ड जोड़ेंगे जिसमें एक संदर्भ नाम जोड़ने के लिए है और दूसरा संदर्भ लिंक के लिए है:
function referenceallallack ($ पोस्ट) wp_nonce_field ('reference_meta_box', 'reference_nonce'); $ name_value = get_post_meta ($ पोस्ट-> ID, '_post_reference_name', true); $ link_value = get_post_meta ($ पोस्ट-> ID, '_post_reference_link', true); गूंज ''; गूंज ''; गूंज ''। 'संदर्भ का नाम जोड़ें'। '
'; गूंज ''; गूंज ''; गूंज ''। 'संदर्भ का लिंक जोड़ें'। '
';
पोस्ट एडिटिंग पेज को रिफ्रेश करें, और आपको इन दोनों इनपुट को जोड़ा जाना चाहिए.
$ NAME_VALUE
तथा $ link_value
चर डेटाबेस से प्रविष्टियों को पुनः प्राप्त करेगा और उन्हें इनपुट फ़ील्ड में पॉप्युलेट करेगा। डेटाबेस में प्रविष्टियां प्राप्त करने के लिए, हमें उसके लिए एक फ़ंक्शन बनाना होगा.
हमें कोड की कुछ पंक्तियों को जोड़ने की आवश्यकता है जो इन इनपुट के माध्यम से जोड़ी गई प्रविष्टियों को डेटाबेस में सुरक्षित रूप से भर देगी. “सुरक्षित रूप से” यहाँ एक वैध और अधिकृत प्रविष्टि का अर्थ है (हैकर्स या अन्य अनधिकृत कर्मियों से आने वाला नहीं)। प्रविष्टि को सहेजने के लिए, हमें एक नया फ़ंक्शन बनाना होगा। समारोह का नाम दें: save_post_reference
, इस तरह.
function save_post_reference ($ post_id) add_action ('save_post', 'save_post_reference');
जैसा कि हमने उल्लेख किया है, हमें सुरक्षा उद्देश्यों के लिए कुछ चीजों को सत्यापित करने की आवश्यकता है:
(1) हमें यह जांचने की आवश्यकता होगी कि क्या उपयोगकर्ता एक पोस्ट को संपादित करने की क्षमता है.
अगर (current_user_can ('edit_post', $ post_id)) वापसी;
(2) हमें भी करने की जरूरत है जाँच करें कि क्या Nonce सेट है.
अगर (isset ($ _POST ['reference_nonce'])) वापसी; यदि ((wp_verify_nonce ($ _POST ['reference_nonce'], 'reference_meta_box')) वापसी;
(3) फिर, हमें डेटा को ऑटो-सेव होने से रोकने की आवश्यकता है। बचत केवल एक बार ही की जा सकती है “बचाना” या “अद्यतन करें” बटन पर क्लिक किया गया है.
यदि (परिभाषित ('DOING_AUTOSAVE') && DOING_AUTOSAVE) वापसी;
(4) हमें यह भी सुनिश्चित करना होगा कि हमारे दो इनपुट, post_reference_name
तथा post_reference_link
, प्रविष्टियों को जमा करने से पहले हम तैयार हैं और तैयार हैं.
अगर (isset ($ _POST ['post_reference_name']]) || (isset ($ _POST ['post_reference_link'])) वापसी;
(5) और प्रवेश किसी भी अप्रत्याशित वर्ण से मुक्त होना चाहिए जो वेबसाइट सुरक्षा से समझौता कर सकता है। इसे जांचने के लिए आप वर्डप्रेस बिल्ट-इन फ़ंक्शन का उपयोग कर सकते हैं sanitize_text_field
.
$ reference_name = sanitize_text_field ($ _POST ['post_reference_name']); $ संदर्भ_लिंक = sanitize_text_field ($ _POST ['post_reference_link']);
ठीक है, अब हम प्रविष्टियों को डेटाबेस में सहेजने के लिए तैयार हैं:
update_post_meta ($ post_id, '_post_reference_name', $ reference_name); update_post_meta ($ post_id, '_post_reference_link', $ reference_link);
अब आप इसे आज़मा सकते हैं: इनपुट फ़ील्ड में कुछ सामग्री इनपुट करें, और क्लिक करें “अद्यतन करें” बटन उन्हें बचाने के लिए.
निष्कर्ष
हमने सिर्फ एक मेटा बॉक्स बनाया है जिसमें दो इनपुट होते हैं। आप अन्य प्रकार के इनपुट जैसे रेडियो बटन या चयन बॉक्स के साथ बॉक्स को आगे बढ़ा सकते हैं। यह उदाहरण बहुत बुनियादी हो सकता है लेकिन एक बार जब आप इसे लटका देते हैं, तो आप इस मेटा बॉक्स का उपयोग अधिक जटिल उपयोगों के लिए कर पाएंगे। हमें बताएं कि क्या आप इसका उपयोग कर रहे हैं और आप इसके लिए क्या उपयोग कर रहे हैं.