2026年11月12日
2026年11月12日
WordPress में मेटा बॉक्स न दिखे तो समाधान: स्क्रीन विकल्प और add_meta_box
यह लेख जापानी मूल लेख का स्थानीयकृत संस्करण है। जापानी मूल लेख पढ़ें
परिचय
प्लगइन से जोड़ा गया मेटा बॉक्स पोस्ट एडिट स्क्रीन में नहीं दिखता, पहले दिखने वाला मेटा बॉक्स अचानक ग़ायब हो गया, या ब्लॉक एडिटर पर जाते ही साइडबार का मेटा बॉक्स नहीं आ रहा। मेटा बॉक्स छिपे रहने का संबंध स्क्रीन की सेटिंग और ब्लॉक एडिटर के साथ संगतता से होता है।
लक्षण और कारण
मेटा बॉक्स न दिखने के मुख्य कारण:
- स्क्रीन विकल्प में छिपा हुआ: हर उपयोगकर्ता की डिस्प्ले सेटिंग में वह “छिपा” पर है
- ब्लॉक एडिटर के साथ असंगतता:
__block_editor_compatible_meta_boxकी सेटिंग चाहिए - हुक की प्राथमिकता की समस्या:
add_meta_boxesहुक का समय सही नहीं बैठ रहा - पोस्ट टाइप में चूक: तीसरे आर्गुमेंट का पोस्ट टाइप ग़लत है
- प्लगइन टकराव: कोई दूसरा प्लगइन मेटा बॉक्स हटा रहा है
समाधान के चरण
चरण 1: स्क्रीन विकल्प जाँचें
सबसे आम कारण स्क्रीन विकल्प में मेटा बॉक्स का छिपा होना है।
1. पोस्ट एडिट स्क्रीन के ऊपर दाईं ओर “स्क्रीन विकल्प” (Screen Options) पर क्लिक करें
2. देखें कि जिस मेटा बॉक्स को दिखाना है उसका चेक हटा तो नहीं है
3. चेक लगाकर बंद करने पर वह दिखने लगता है
चरण 2: add_meta_box का क्रियान्वयन जाँचें
// functions.php: मेटा बॉक्स को सही तरीके से जोड़ना
add_action('add_meta_boxes', function() {
add_meta_box(
'my_meta_box_id', // ID (अनूठा स्ट्रिंग)
'कस्टम जानकारी', // शीर्षक
'render_my_meta_box', // कॉलबैक फ़ंक्शन
['post', 'page'], // पोस्ट टाइप (ऐरे से एक से ज़्यादा दे सकते हैं)
'normal', // संदर्भ: normal/side/advanced
'high' // प्राथमिकता: high/core/default/low
);
});
function render_my_meta_box($post) {
wp_nonce_field('my_meta_nonce_action', 'my_meta_nonce');
$value = get_post_meta($post->ID, '_my_field', true);
echo '<input type="text" name="my_field" value="' . esc_attr($value) . '">';
}
चरण 3: ब्लॉक एडिटर में मेटा बॉक्स दिखाएँ
ब्लॉक एडिटर (Gutenberg) में मेटा बॉक्स का समर्थन सीमित है।
// ब्लॉक एडिटर में भी मेटा बॉक्स दिखाना
add_action('add_meta_boxes', function() {
add_meta_box(
'my_meta_box_id',
'कस्टम जानकारी',
'render_my_meta_box',
'post',
'normal',
'high',
// ब्लॉक एडिटर संगतता स्पष्ट रूप से बताएँ
['__block_editor_compatible_meta_box' => true]
);
});
चरण 4: ब्लॉक एडिटर बंद करके जाँचें
// functions.php: किसी ख़ास पोस्ट टाइप में ब्लॉक एडिटर बंद करना
add_filter('use_block_editor_for_post_type', function($use_block_editor, $post_type) {
if ($post_type === 'post') {
return false; // क्लासिक एडिटर पर स्विच करें
}
return $use_block_editor;
}, 10, 2);
या “Classic Editor” प्लगइन इंस्टॉल करके एडमिन स्क्रीन से सेट करने का तरीका भी है।
चरण 5: मेटा बॉक्स के दिखने की डीबगिंग करें
// जाँचें कि मेटा बॉक्स रजिस्टर हुआ है या नहीं
add_action('add_meta_boxes', function() {
global $wp_meta_boxes;
error_log('Meta boxes: ' . print_r(array_keys($wp_meta_boxes), true));
}, 999); // प्राथमिकता 999 से सबसे अंत में चलाएँ
चरण 6: प्लगइन टकराव की जाँच करें
# WP-CLI से सभी प्लगइन निष्क्रिय करके मेटा बॉक्स जाँचें
wp plugin deactivate --all
# ब्राउज़र में पोस्ट एडिट स्क्रीन खोलकर देखें कि मेटा बॉक्स आता है या नहीं
# ठीक हो तो प्लगइन एक-एक करके सक्रिय करके कारण पहचानें
wp plugin activate plugin-name
चरण 7: यूज़र मेटा रीसेट करें
स्क्रीन विकल्प की सेटिंग यूज़र मेटा में सहेजी जाती है।
// किसी उपयोगकर्ता की मेटा बॉक्स डिस्प्ले सेटिंग रीसेट करना
delete_user_meta(get_current_user_id(), 'metaboxhidden_post');
delete_user_meta(get_current_user_id(), 'metaboxhidden_page');
ध्यान देने की बातें
- स्क्रीन विकल्प की सेटिंग हर उपयोगकर्ता के लिए अलग सहेजी जाती है। दूसरे उपयोगकर्ताओं को अलग से सेट करना होगा।
- ब्लॉक एडिटर में सिर्फ़
sideसंदर्भ (context) वाले मेटा बॉक्स साइडबार में दिखते हैं। - ACF (Advanced Custom Fields) इस्तेमाल करते हों तो ब्लॉक एडिटर के अनुकूल फ़ील्ड ग्रुप सेटिंग चाहिए।
सारांश
मेटा बॉक्स न दिखे तो पहले “स्क्रीन विकल्प” के चेक जाँचें। ब्लॉक एडिटर में __block_editor_compatible_meta_box की सेटिंग चाहिए। फिर भी हल न हो तो प्लगइन टकराव को अलग करके जाँचें। संबंधित लेख: कस्टम फ़ील्ड सेव न हो तो, ब्लॉक एडिटर क्रैश हो तो
WordPress के बारे में सवाल हैं? इस साइट के प्रकाशक जापान में हैं और जापानी में जवाब देते हैं। संपर्क (जापानी)