ब्लॉग
थीम.जेसन को कस्टम पोस्ट प्रकार और प्लगइन आउटपुट तक विस्तारित करना: एक व्यावहारिक मार्गदर्शिका
अपने वर्डप्रेस साइट पर सुसंगत डिज़ाइन के लिए कस्टम पोस्ट प्रकार और प्लगइन सामग्री पर थीम.जेसन सेटिंग्स को लागू करना सीखें।

सारांश
कई वर्डप्रेस डेवलपर ऐसे कस्टम पोस्ट प्रकार या प्लगइन बनाते हैं जो सामग्री (जैसे, प्रशंसापत्र, पोर्टफोलियो) आउटपुट करते हैं। हालाँकि, थीम.जेसन—वैश्विक शैलियों का केंद्रीय कॉन्फ़िगरेशन—अक्सर डिफ़ॉल्ट रूप से इन कस्टम तत्वों को अनदेखा करता है, जिससे डिज़ाइन असंगत हो जाता है। यह लेख आपको कस्टम पोस्ट प्रकारों को थीम.जेसन शैलियों को प्राप्त करने के लिए पंजीकृत करने, विशिष्ट ब्लॉकों के लिए सेटिंग्स को ओवरराइड करने, और प्लगइन आउटपुट को कोर डिज़ाइन टोकन के साथ जोड़ने के बारे में बताता है। आपको चरण-दर-चरण निर्देश, 'टीम मेंबर' सीपीटी को स्टाइल करने जैसे वास्तविक दुनिया के उदाहरण, और प्रदर्शन और तृतीय-पक्ष संघर्षों के बारे में चेतावनियाँ मिलेंगी। अंत तक, आप सुनिश्चित कर सकते हैं कि कोई भी कस्टम सामग्री आपकी साइट के संपादक-परिभाषित डिज़ाइन सिस्टम से मेल खाती है।
क्या आपने कभी कोई कस्टम पोस्ट प्रकार बनाया या किसी तृतीय-पक्ष प्लगइन को एकीकृत किया, और पाया कि उसका आउटपुट पूरी तरह से उस सुंदर डिज़ाइन सिस्टम को अनदेखा करता है जिसे आपने theme.json में कठिनाई से कॉन्फ़िगर किया था? आप अकेले नहीं हैं। डिफ़ॉल्ट रूप से, theme.json केवल कोर वर्डप्रेस ब्लॉक और पंजीकृत ब्लॉक शैलियों पर लागू होता है, जिससे कस्टम पोस्ट प्रकार और प्लगइन-जनित सामग्री अपने आप ही काम करने को छोड़ दी जाती है। इसके परिणामस्वरूप अक्सर इनलाइन सीएसएस, डुप्लिकेट फ़ॉन्ट स्टैक, या एक बेमेल रंग पैलेट होता है जो उपयोगकर्ता अनुभव को तोड़ता है। लेकिन एक बेहतर तरीका है: आप इन कस्टम तत्वों को कवर करने के लिए theme.json का विस्तार कर सकते हैं, जिससे आपकी पूरी साइट पर एक सुसंगत, रखरखाव योग्य डिज़ाइन सिस्टम सुनिश्चित होता है। इस गाइड में, हम ऐसा करने के लिए चार व्यावहारिक चरणों को कवर करेंगे, कोड उदाहरणों और वास्तविक दुनिया की चेतावनियों के साथ।
थीम.जेसन के दायरे को समझना
गहराई में जाने से पहले, यह समझना महत्वपूर्ण है कि theme.json एक ब्लॉक थीम अवधारणा है। यह ब्लॉक एडिटर और फ्रंट एंड के लिए वैश्विक शैलियाँ, सेटिंग्स (जैसे रंग पैलेट और फ़ॉन्ट आकार), और ब्लॉक-विशिष्ट शैलियाँ परिभाषित करता है। हालाँकि, इसकी पहुँच सीमित है: यह केवल उन ब्लॉकों को नियंत्रित करता है जो register_block_type या पुराने add_theme_support के माध्यम से theme.json गुणों के लिए समर्थन स्पष्ट रूप से घोषित करते हैं। register_post_type के साथ बनाए गए कस्टम पोस्ट प्रकार स्वचालित रूप से इन शैलियों को प्राप्त नहीं करते हैं जब तक कि वे ब्लॉक के साथ नहीं बनाए जाते या स्पष्ट रूप से स्टाइल नहीं किए जाते।
चरण 1: ब्लॉक एडिटर समर्थन के साथ कस्टम पोस्ट प्रकार पंजीकृत करना
पहला कदम यह सुनिश्चित करना है कि आपका कस्टम पोस्ट प्रकार ब्लॉक एडिटर का उपयोग करता है। register_post_type को कॉल करते समय, 'show_in_rest' => true सेट करें और supports ऐरे में 'editor' शामिल करें। यह उस पोस्ट प्रकार के लिए ब्लॉक एडिटर को सक्षम करता है, जिससे लेखक थीम.जेसन से ब्लॉक-स्तरीय शैलियों का उपयोग कर सकते हैं। उदाहरण के लिए, यहाँ एक "टीम मेंबर" सीपीटी है:
function create_team_member_cpt() {
$args = array(
'public' => true,
'show_in_rest' => true,
'supports' => array( 'title', 'editor', 'thumbnail', 'custom-fields' ),
'show_in_menu' => true,
'labels' => array(
'name' => 'टीम मेंबर',
'singular_name' => 'टीम मेंबर',
),
'rewrite' => array( 'slug' => 'team' ),
);
register_post_type( 'team_member', $args );
}
add_action( 'init', 'create_team_member_cpt' );
अब, जब आप किसी टीम मेंबर पोस्ट को संपादित करेंगे, तो आपको ब्लॉक एडिटर दिखाई देगा जिसमें कोर ब्लॉक जैसे पैराग्राफ, हेडिंग और इमेज पर आपकी थीम की वैश्विक शैलियाँ लागू होंगी। यह अकेला अक्सर अधिकांश स्टाइलिंग समस्याओं को हल करता है। यदि आपको अधिक सूक्ष्म नियंत्रण की आवश्यकता है, तो अगले चरण पर जाएँ। theme.json के साथ ब्लॉक थीम बनाने पर गहराई से जानकारी के लिए, देखें How to Build a Custom WordPress Block Theme with theme.json।
चरण 2: थीम.जेसन के माध्यम से कस्टम ब्लॉक शैलियाँ जोड़ना
कभी-कभी आप अपने कस्टम पोस्ट प्रकार की सामग्री के सभी उदाहरणों पर विशिष्ट शैलियाँ लागू करना चाहते हैं—उदाहरण के लिए, पूरे पोस्ट को एक पृष्ठभूमि रंग या विशेष पैडिंग देना। आप core/post-content को लक्षित कर सकते हैं या अपनी सामग्री को एक कस्टम ग्रुप ब्लॉक में लपेट सकते हैं और उसे theme.json के माध्यम से स्टाइल कर सकते हैं। अपने theme.json फ़ाइल में styles ऑब्जेक्ट के अंतर्गत निम्नलिखित जोड़ें:
{
"styles": {
"blocks": {
"core/post-content": {
"css": "background-color: var(--wp--preset--color--light); padding: 2rem;"
}
}
}
}
यह सभी पोस्टों के सामग्री क्षेत्र पर एक हल्की पृष्ठभूमि और पैडिंग लागू करेगा, जिसमें आपका टीम मेंबर सीपीटी भी शामिल है। आप settings.blocks के अंदर ब्लॉक-विशिष्ट विविधताएँ भी परिभाषित कर सकते हैं ताकि एडिटर में स्टाइल विकल्प प्रदान किए जा सकें।
चरण 3: प्लगइन आउटपुट के लिए थीम.जेसन कस्टम प्रॉपर्टीज़ का उपयोग करना
प्लगइन अक्सर शॉर्टकोड, विजेट या कस्टम ब्लॉक के माध्यम से सामग्री आउटपुट करते हैं। इन्हें लगातार स्टाइल करने के लिए, उन सीएसएस कस्टम प्रॉपर्टीज़ का लाभ उठाएँ जो theme.json उत्पन्न करता है। उदाहरण के लिए, यदि आपकी थीम एक प्राथमिक रंग को --wp--preset--color--primary के रूप में परिभाषित करती है, तो आप इसे अपने प्लगइन के सीएसएस में उपयोग कर सकते हैं:
.my-plugin-button {
background-color: var(--wp--preset--color--primary);
font-size: var(--wp--preset--font-size--medium);
}
यह सुनिश्चित करता है कि जब साइट एडमिन theme.json में रंग पैलेट बदलता है, तो आपका प्लगइन बटन स्वचालित रूप से अपडेट होता है। इसे मजबूत बनाने के लिए, हार्डकोडिंग मानों के बजाय हमेशा प्रीसेट सीएसएस वेरिएबल का उपयोग करें। इसके अतिरिक्त, यदि आपका प्लगइन अपने स्वयं के ब्लॉक पंजीकृत करता है, तो आप जावास्क्रिप्ट में useSetting का उपयोग करके या पीएचपी रेंडरिंग में $attributes पास करके थीम.जेसन सेटिंग्स प्राप्त कर सकते हैं, जैसा कि Mastering WordPress Dynamic Blocks में कवर किया गया है।
चरण 4: डायनामिक ब्लॉक को संभालना
उन कस्टम ब्लॉकों के लिए जो डायनामिक सामग्री (जैसे, प्रशंसापत्र स्लाइडर) आउटपुट करते हैं, आपको ब्लॉक को ब्लॉक एडिटर समर्थन के साथ पंजीकृत करना होगा और स्पष्ट रूप से इसे थीम.जेसन से जोड़ना होगा। पीएचपी में, register_block_type का उपयोग करें जिसमें $args में 'render_callback' शामिल हो और सुनिश्चित करें कि आपके ब्लॉक की block.json फ़ाइल 'supports' => array( 'color' => true, 'typography' => true ) सेट करती है। फिर, अपने रेंडर कॉलबैक में, आप wp_get_global_styles() के माध्यम से वैश्विक शैलियों तक पहुँच सकते हैं और उन्हें लागू कर सकते हैं। उदाहरण के लिए:
function render_testimonial_block( $attributes, $content ) {
$styles = wp_get_global_styles();
$color = $styles['elements']['link']['color']['text'] ?? '#000';
return '<div style="color: ' . esc_attr( $color ) . ';">' . $content . '</div>';
}
यह दृष्टिकोण सुनिश्चित करता है कि आपका कस्टम ब्लॉक थीम के डिज़ाइन टोकन का सम्मान करता है। ब्लॉक पंजीकरण पर अधिक के लिए, देखें Building Robust WordPress Plugins।
चेतावनियाँ
जबकि theme.json का विस्तार शक्तिशाली है, इन खतरों पर ध्यान दें:
- प्रदर्शन:
theme.jsonमें बहुत अधिक कस्टम शैलियाँ जोड़ने से फ़ाइल फूल सकती है और सीएसएस पार्सिंग समय बढ़ सकता है। वैश्विक सेटिंग्स पर टिके रहें और ब्लॉक-विशिष्ट शैलियों का कम उपयोग करें। - प्लगइन संघर्ष: कुछ प्लगइन
theme.jsonसेटिंग्स को रीसेट या ओवरराइड करते हैं। हमेशा न्यूनतम प्लगइन सेट के साथ परीक्षण करें और अपने कस्टमाइज़ेशन को पुनः लागू करने के लिएafter_setup_themeमें हुक करने पर विचार करें। - क्लासिक थीम: यदि आपकी थीम ब्लॉक एडिटर का उपयोग नहीं करती है (अर्थात, यह एक क्लासिक थीम है), तो
theme.jsonका सीमित प्रभाव होता है। ब्लॉक थीम में माइग्रेट करने या शैलियों को लोड करने के लिएwp_enqueue_global_stylesफ़ंक्शन का उपयोग करने पर विचार करें। - ब्राउज़र कैश: कैशिंग के कारण
theme.jsonमें बदलाव तुरंत दिखाई नहीं दे सकते हैं। ब्राउज़र कैश साफ़ करें और अपनी स्टाइलशीट के लिए वर्शनिंग का उपयोग करें।
निष्कर्ष
अब तक, आपके पास एक स्पष्ट रोडमैप है जिससे कस्टम पोस्ट प्रकार और प्लगइन आउटपुट को आपके theme.json डिज़ाइन सिस्टम के साथ सुचारू रूप से काम करने में मदद मिलती है। मुख्य बात यह है कि अपने सीपीटी को ब्लॉक एडिटर समर्थन के साथ पंजीकृत करें, पोस्ट सामग्री ब्लॉक के लिए विशिष्ट शैलियाँ परिभाषित करें, प्लगइन आउटपुट में सीएसएस कस्टम प्रॉपर्टीज़ का उपयोग करें, और उचित थीम.जेसन एकीकरण के साथ अपने कस्टम ब्लॉक पंजीकृत करें। यह दृष्टिकोण असंगति को समाप्त करता है, रखरखाव को कम करता है, और साइट प्रशासकों को एक ही स्रोत से रूप और अनुभव को नियंत्रित करने की शक्ति देता है। अपने वर्डप्रेस प्रोजेक्ट्स में सामंजस्य लाने के लिए आज ही इन चरणों को लागू करना शुरू करें।
Sources (5)
- WordPress theme.json: How to Edit, Examples & Best Practices - Jetpack
- Best Practices – Plugin Handbook - WordPress Developer Resources
- Essential WordPress Plugin Development Best Practices - Pixel Fish
- The WordPress REST API: A Developer's Guide - WP Engine
- The Complete Newbie's Guide to theme.json in WordPress - Pootlepress