दिए गए अक्षर से शुरू होने वाले सभी पोस्ट प्रदर्शित करें?


12

मैं Wordpress आधारित शब्दकोश बनाने की कोशिश कर रहा हूं, मूल रूप से इसमें 26 पृष्ठ होंगे (प्रत्येक अक्षर के लिए एक):

एबीसी ... XYZ

और हर पेज दिए गए अक्षर से शुरू होने वाले सभी पोस्ट को प्रदर्शित करेगा, इसलिए "ए" पेज खोलने के बाद इसे कुछ इस तरह दिखाना चाहिए:

अचंभे

अबेकस

ऐबालोन

(...) नीला

मैं पहली बार कस्टम पोस्ट प्रकारों के बारे में सोच रहा था, लेकिन 26 कस्टम पोस्ट प्रकारों को बनाने और बनाए रखने में एक ओवरकिल की तरह लगता है।

उस तरह के पदों को छाँटने का सबसे कुशल तरीका क्या होगा? डेटाबेस क्वेरी, PHP के साथ विभाजन लूप? मैं विभिन्न प्रकार के पदों का लक्ष्य बना रहा हूं (हां, यह वर्डप्रेस :) होना चाहिए)।

जवाबों:


10

पोस्ट प्रकार का उपयोग न करें, वर्गीकरण शब्दों का उपयोग करें!

सहेजने पर, पोस्ट शीर्षक के पहले अक्षर का उपयोग करते हुए, एक AZ वर्गीकरण में ऑब्जेक्ट की शर्तों को सेट करें। स्थिरता के लिए ऊपरी या निचले हिस्से को मजबूर करना सुनिश्चित करें। वर्णमाला के प्रत्येक अक्षर और संख्याओं और अन्य गैर अल्फ़ान्यूमेरिक प्रतीकों के लिए एक शब्द बनाना सुनिश्चित करें।

यह प्रत्येक पोस्ट शीर्षक के पहले अक्षर को क्वेरी करने से अधिक तेज़ होना चाहिए, और यह आपको एक वर्गीकरण देता है जिससे आप टैग क्लाउड, या लिस्टर विजेट्स जैसे अधिक सामान के साथ कर सकते हैं! यह निर्धारित करने का एक बहुत तेज़ तरीका है कि कौन से अक्षरों में संबद्ध पद हैं और कितने हैं, डेटाबेस को मैन्युअल रूप से गिनने के लिए मजबूर किए बिना, और आप अधिक जटिल प्रश्नों को करने के लिए मानक वर्डप्रेस शब्द एपीआई का उपयोग कर सकते हैं, जैसे कि स्वरों से शुरू होने वाले पोस्ट


यह निश्चित रूप से आदर्श मार्ग है। हालाँकि, ध्यान रखें, हजारों पदों के साथ; यह काफी बोझिल काम हो सकता है। आपको शुरुआत में वर्णमाला के प्रत्येक अक्षर के साथ शुरू होने वाले सभी पदों को क्वेरी करने की आवश्यकता होगी , और वर्णमाला के संबंधित पत्र से मेल खाते हुए प्रत्येक पोस्ट को उचित वर्गीकरण के साथ अपडेट करना होगा। अन्यथा, प्रत्येक व्यक्तिगत पोस्ट को मैन्युअल रूप से अपडेट करने में शताब्दियों का समय लगेगा ।
माइकल एकलांड

हाँ, यह एक बड़ा नकारात्मक पहलू है, इन पोस्टों को पूरी तरह से अज्ञानी लोगों द्वारा जोड़ा जाएगा और मैं उन पर भरोसा नहीं कर सकता जब नई पोस्ट बनाते समय सही टैक्सोनॉमी स्थापित करने की बात आती है। मुझे यकीन नहीं है कि सभी पोस्ट को क्वेरी करने और हर बार किसी को अपडेट करने / बनाने के लिए कुछ कुशल होगा?
वर्डप्रेस

3
नहीं, यह एक मुद्दा बिल्कुल नहीं हो सकता है, यूआई छिपाने के लिए और स्वचालित रूप से बचाने और अद्यतन पोस्ट हुक पर यह process.do, यह कर मैन्युअल रूप से मूर्खता से महंगी होगी
टॉम जम्मू नॉवेल

टॉम जम्मू नोवेल, यह एक आकर्षण की तरह काम करता है, लेकिन मैं एक गंभीर मुद्दा है और मुझे यकीन है कि यह कैसे प्रबंधित करने के लिए नहीं कर रहा हूँ - शब्दों से कुछ इस तरह के रूप पत्र के साथ शुरू होगा en.wikipedia.org/wiki/Ą - मैं कर रहा हूँ इनके लिए शब्द निर्धारित करने में असमर्थ। यहाँ कुछ कोड और स्पष्टीकरण है: pastebin.com/cHxbjVFH , ऐसा क्यों हो रहा है? मैं इस भाषा के लिए समर्पित WP पैक का उपयोग कर रहा हूं।
वर्डप्रेस

क्या आप लहजे और umlauts आदि के बारे में बात कर रहे हैं? यदि ऐसा है तो यह ऐसा कुछ है जो अपने आप में एक नया प्रश्न है, और यह पूछने के लिए एक तुच्छ प्रश्न नहीं है। यह संभव है यह भी एक सामान्य पीएचपी सवाल है और इसलिए स्टैक ओवरफ़्लो होगा यह पूछने के लिए सबसे अच्छी जगह
टॉम जम्मू नॉवेल

4

यदि आप पसंदीदा वर्गीकरण शर्तों के साथ नहीं जाना चाहते हैं, तो यह करें:

<ul class="posts">
         <?php 
         global $wpdb; 
         $request = "a" // could be any letter you want
         $results = $wpdb->get_results(
                "
                SELECT * FROM $wpdb->posts
                WHERE post_title LIKE '$request%'
                AND post_type = 'post'
                AND post_status = 'publish'; 
                "
         ); 
         if ( $results ) 
         {
            foreach ( $results as $post ) 
            {
                setup_postdata ( $post ); 
                ?> 
                <li>
                    ... loop stuff here (the_title, the_permalink) ... 
                </li>
                <?php 
            }
         } 
         else 
         {
            ?> 
            <div class="alert">No clubs found for that letter. Please try again, or use the search at the top.</div>
            <?php
         }
         ?>
    </ul>

क्या आप बता सकते हैं कि यह कैसे काम करता है? क्या इसमें कोई भी पद नहीं होगा जिसमें पत्र शामिल हो?
टिनटिनब्यूलेटर Zea

यह नहीं होगा। mysql वाइल्डकार्ड के रूप में% का उपयोग करता है। हालाँकि मुझे mysql प्रश्नों में $ का कभी सामना नहीं करना पड़ा। सही ढंग से इसे पढ़ना चाहिएWHERE post_title LIKE 'request%'
ब्रेट

1

इस लेख को यहाँ देखें: query_post by title?

या आप PODS 2 फ्रेमवर्क का उपयोग करके प्री-सेव हेल्पर बना सकते हैं और पोस्ट शीर्षक के पहले अक्षर को किसी क्षेत्र में सहेज सकते हैं और साधारण WHO स्थिति का उपयोग कर सकते हैं।

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

पॉड्स 2 में आप मौजूदा पोस्ट सामग्री प्रकार में अतिरिक्त फ़ील्ड जोड़ सकते हैं। यह प्लगइन / ढांचा जो कि ड्रुपल दुनिया में CCK + Views जैसा कुछ है वास्तव में बहुत बढ़िया है।

पॉड्स 2 बहुत मददगार प्लगइन है।

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