वर्डप्रेस: अपने कस्टम पोस्ट प्रकार के पोस्ट को वर्णानुक्रम में कैसे क्रमबद्ध करें I
नई थीम (और चाइल्ड थीम) के साथ मैंने लागू किया है Martech Zone, मुझे अपने द्वारा बनाए गए कस्टम पोस्ट प्रकार को फिर से बनाना और रिकोड करना था परिवर्णी. मैंने कुछ अतिरिक्त कस्टम फ़ील्ड सम्मिलित करने के लिए कोड को अनुकूलित किया है और मुझे सूचीबद्ध संक्षिप्ताक्षरों को बेहतर ढंग से प्रदर्शित करने के लिए संग्रह और टैक्सोनॉमी टेम्प्लेट को फिर से डिज़ाइन करना पड़ रहा है।
मेरे पिछले विषय में (जिसके डेवलपर्स ने समर्थन बंद कर दिया था), इन पृष्ठों पर काफी ध्यान दिया गया क्योंकि वे अच्छी तरह से प्रलेखित थे और यहां तक कि संक्षिप्त रूप से प्रासंगिक लेख भी दिखाते थे। मैं उस कार्यक्षमता को नई साइट पर माइग्रेट करना जारी रखूंगा और यहां तक कि मैं परिवर्णी शब्द की परिभाषा प्रदर्शित करने के लिए होवर पद्धति का उपयोग करना चाहता हूं, बजाय इसके कि आगंतुक परिवर्णी शब्द लिंक पर क्लिक करें। इस बारे में काफी...
कस्टम पोस्ट प्रकार छँटाई
क्योंकि वर्डप्रेस मूल रूप से ब्लॉग उपयोग के लिए डिज़ाइन किया गया था, किसी भी पोस्ट प्रकार (कस्टम पोस्ट प्रकार सहित) का डिफ़ॉल्ट पोस्ट को रिवर्स कालानुक्रमिक क्रम में ऑर्डर करना है। जबकि यह समाचार और लेखों के लिए काम करता है, यह शब्दावली या शब्दकोषों की सूची जैसी चीजों के लिए फायदेमंद नहीं है। मैं चाहता हूं कि मेरे एक्रोनिम्स को अल्फ़ान्यूमेरिक रूप से ऑर्डर किया जाए, उस तारीख तक नहीं जब उन्हें वर्डप्रेस में दर्ज किया गया था।
जैसा कि वर्डप्रेस में लगभग हर सुविधा के साथ होता है, इसे वर्डप्रेस एपीआई के साथ आसानी से अनुकूलन योग्य बनाया जा सकता है। मेरे में functions.php मेरे बच्चे के विषय में फ़ाइल, मैंने निम्नलिखित कोड जोड़ा:
add_action( 'pre_get_posts', function ( $query ) {
if ( $query->is_archive() && $query->is_main_query() ) {
if ( get_query_var( 'post_type' ) == 'acronym' ) {
$query->set( 'order', 'ASC' );
$query->set( 'orderby', 'title' );
};
};
} );
RSI pre_get_posts फ़ंक्शन एक क्रिया है जिसे तब निष्पादित किया जाता है जब पोस्ट की क्वेरी की जाती है। उपरोक्त कोड में, मैं यह सुनिश्चित करने में सक्षम हूं कि कस्टम पोस्ट प्रकार of परिवर्णी शब्द शीर्षक द्वारा आरोही क्रम में क्रमबद्ध करने के लिए विशेष रूप से सेट किया गया है।
यह इस क्रम को संग्रह और वर्गीकरण पृष्ठों के आउटपुट में सेट नहीं करता है, यह वर्डप्रेस के प्रशासनिक पैनल के भीतर कस्टम पोस्ट प्रकार को अल्फ़ान्यूमेरिक रूप से भी ऑर्डर करता है।
क्योंकि आप डिफ़ॉल्ट क्वेरी पैरामीटर सेट कर रहे हैं, आप अन्य चर भी जोड़ सकते हैं, जैसे पुनर्प्राप्त करने के लिए रिकॉर्ड की संख्या (
posts_per_page). परिवर्णी शब्दों के लिए, मैं एक समय में 25 रिकॉर्ड वापस कर रहा हूं, जहां मैं शेष साइट पर 10 पर डिफॉल्ट कर रहा हूं।यदि आप कस्टम पोस्ट प्रकार को केवल अपने संग्रह टेम्पलेट पर वर्णानुक्रम में प्रकाशित करना चाहते हैं, लेकिन अपने वर्डप्रेस प्रशासन पैनल में नहीं, तो आप उस कोड को अपडेट कर सकते हैं:
function acronym_archive_orderby_title($query) {
// Check if it's the main query, an archive page, and the post type is 'acronym'
if ($query->is_main_query() && is_post_type_archive('acronym') && !is_admin()) {
// Order by title alphabetically
$query->set('orderby', 'title');
$query->set('order', 'ASC');
}
}
add_action('pre_get_posts', 'acronym_archive_orderby_title');
कस्टम पोस्ट प्रकार आपकी साइट की क्षमताओं को महत्वपूर्ण रूप से विस्तारित करने में आपकी सहायता कर सकते हैं ... और यह सब किसी भी प्लगइन्स की आवश्यकता के बिना आपकी चाइल्ड थीम (या कोर थीम) के भीतर कुछ सरल कोड के साथ किया जा सकता है। वास्तव में, मैं प्लगइन्स का उपयोग न करने की सलाह देता हूं क्योंकि वे अक्सर कंप्यूटिंग ओवरहेड जोड़ते हैं जो आपकी साइट को धीमा कर सकता है। मैं अभी एक ग्राहक साइट पर काम कर रहा हूँ जहाँ वे नौकरी के उद्घाटन को शामिल करना चाहते हैं ... और यह कोड उनके लिए भी काम आने वाला है!