WP मेटा बॉक्स की डिफ़ॉल्ट स्थिति कैसे बदलें?


17

Im सोच रहा था कि क्या Wordpresses मेटा बॉक्स की डिफ़ॉल्ट स्थिति को बदलने का एक तरीका है जैसे कि कस्टम पोस्ट प्रकारों के लिए "चित्रित छवि" जैसे कि उन्हें मैन्युअल रूप से खींचे बिना?

उदाहरण: मेटा बॉक्स पोजिशनिंग उदाहरण


आप डिफ़ॉल्ट क्रम बदल सकते हैं: wordpress.stackexchange.com/questions/41501/…

जवाबों:


22

आप डिफ़ॉल्ट मेटा बॉक्स को remove_meta_box से हटा सकते हैं और उन्हें add_meta_box के साथ एक अलग स्थिति में पुनः जोड़ सकते हैं:

add_action('do_meta_boxes', 'wpse33063_move_meta_box');

function wpse33063_move_meta_box(){
    remove_meta_box( 'postimagediv', 'post', 'side' );
    add_meta_box('postimagediv', __('Featured Image'), 'post_thumbnail_meta_box', 'post', 'normal', 'high');
}

यह इसे साइड कॉलम से हटा देगा और मुख्य कॉलम में जोड़ देगा। postआपके कस्टम पोस्ट प्रकार का नाम जो भी हो, इस उदाहरण में परिवर्तन करें।


यह आदर्श लगता है, धन्यवाद फिर से मिलो मैं इसे आज़माऊंगा।
Mr.Brown 14

@ मायो: यदि add_meta_box()किसी $callbackफ़ंक्शन नाम की आवश्यकता है , तो मुझे वर्डप्रेस द्वारा उपयोग किए जाने वाले फ़ंक्शन का नाम कैसे पता चलेगा? मान लीजिए कि अगर मैं वही काम करना चाहता हूं जो meta_box 'श्रेणियाँ' (#categorydiv) को साइडबार करता है?
मयिनुल इस्लाम

5
@MayeenulIslam फाइल में दिखता है /wp-admin/edit-form-advanced.phpऔर आप देखेंगे कि वर्डप्रेस सभी कोर मेटा बॉक्स और कॉलबैक और तर्कों का उपयोग करता है। श्रेणियों के लिए यह है post_categories_meta_box
मिलो

5

मैंने इससे भी संघर्ष किया। मुझे वास्तव में लेआउट / ऑर्डर को फिर से परिभाषित करने का एक साफ तरीका नहीं मिला - विशेष रूप से चूंकि इसे उपयोगकर्ताओं द्वारा तब बदला जा सकता है जब वे बक्से को खींचते हैं।

मैं चीजों को 'वर्डप्रेस' के साथ करना पसंद करता हूं (यह आमतौर पर भुगतान करता है), इसके साथ टकराव की तुलना में रिथे और जिस तरह से वर्डप्रेस करता है वह इस प्रकार है:

वर्डप्रेस प्रति स्क्रीन प्रति उपयोगकर्ता के खींचे गए पदों को संग्रहीत करता है और उपयोगकर्ता-मेटा कुंजियों का एक पूरा गुच्छा होता है, जिसका उपयोग वह उस पृष्ठ / स्क्रीन के आधार पर करता है।

इसलिए आप प्रत्येक नए उपयोगकर्ता के लिए एक क्रिया या फ़िल्टर जोड़ सकते हैं, जिससे उपयोगकर्ता तय कर सके कि आप किस तरह से डिफ़ॉल्ट होना चाहते हैं।
1) जिस पेज को आप प्रभावित करना चाहते हैं उसे खींचें और व्यवस्थित करें, 2) अपनी आईडी के लिए अपने यूजर-मेटा में phpmyadmin में देखें और देखें कि वहां क्या wp संग्रहीत किया गया है। 3) फिर नई उपयोगकर्ता कार्रवाई को इस प्रकार कोडित करें यदि किसी उपयोगकर्ता के पास पहले से सेट (व्यक्तिगत पसंद से बचने के लिए) सेटिंग नहीं है, तो आप इसे अपने इच्छित तरीके से सेट कर सकते हैं - मान के साथ आप इसे मैन्युअल रूप से सेट कर सकते हैं।

आपके द्वारा खोजे जा रहे उपयोगकर्ता-मेटा मेटा के विचार प्राप्त करने के लिए, ये स्क्रीनशॉट देखें: http://wpusersplugin.com/related-plugins/amr-user-templates/screenshots-for-user-templates/

(मैंने एक जेनेरिक प्लगइन लिखना शुरू किया, ताकि मैं सभी प्रकार के पृष्ठों / स्क्रीन के लिए सभी उपयोगकर्ताओं के लिए मेरे पसंदीदा लेआउट को परिभाषित कर सकूं। फिर वे इसे बदल सकते थे, जैसे कि वे अधिक कुशल हो गए। इसके अलावा यह तब नहीं टूटेगा जब wp बदल जाएगा। मेरे द्वारा प्लगइन के रूप में चीजें बस टेम्पलेट उपयोगकर्ता मूल्यों को प्राप्त करती हैं, यह मूल्य को हार्डकोड किए गए मान पर सेट करने का प्रयास भी नहीं करता है।)


1
हालांकि मुझे इस दृष्टिकोण के पीछे का विचार पसंद है, मिलो का समाधान बहुत तेज़ लगता है इसलिए Im वाला इसे बदले में एक शॉट देता है, लेकिन इस दृष्टिकोण पर मुझे सूचित करने के लिए समय निकालने के लिए धन्यवाद। मैं बाद की तारीख में इस तरीके का उपयोग करने पर ध्यान दूंगा। मैं आपकी टिप्पणी 1up'd।
Mr.Brown

3
अनमरी द्वारा प्रस्तावित प्लगिन एक पेड कमर्शियल प्लगइन है ... और पिछले साल अगस्त से अपडेट नहीं हुआ। क्या आप अभी भी उस प्लगइन को बनाए हुए हैं? यदि नहीं, तो क्या आपने इसे गितुब पर साझा करने पर विचार किया है?
अप्रभावी

इस दृष्टिकोण को साझा करने के लिए @anmari को धन्यवाद, वास्तव में उपयोगी।
मूर बरज़नी

0

यदि आप अपने मेटा बॉक्स को ठीक क्रम देना चाहते हैं, तो आप इस प्लगइन का उपयोग कर सकते हैं: https://wordpress.org/plugins/post-meta-box-order/

यह उपयोगकर्ता विकल्प के मेटा-बॉक्स- order_post (टेबल wp_usermeta) पर खेलता है।

नोट 1: इस तकनीक को झंडे के अंत को बदलकर किसी भी कस्टम CPT पर लागू किया जा सकता है: मेटा-बॉक्स-ऑर्डर_ [YourCCPT]

नोट 2: सभी मौजूदा उपयोगकर्ताओं के लिए अपने नए आदेश को लागू करने के लिए प्लगइन के कोड में हैश को बदलना न भूलें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.