Archive.php पर नाम और asc ऑर्डर के आधार पर क्रमबद्ध परिणाम


15

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

<?php $post = $posts[0]; // ?>

अग्रिम में धन्यवाद।


यदि आप अपने संग्रह में कस्टम क्वेरी का उपयोग कर रहे हैं। तो क्या आप इसे दिखा सकते हैं? हो सकता है कि pastie.org पर पूरा संग्रह पोस्ट करें । लिंक के साथ अपना उत्तर अपडेट करें?
हमीदुल्ला खान

जवाबों:


36

ऐसा करने का सबसे आसान तरीका pre_get_postsऑर्डर बदलने के लिए हुक ( हुक) का उपयोग करना है। लेकिन आपको यह जांचना चाहिए कि क्वेरी वह है जिसके लिए आप ऑर्डर बदलना चाहते हैं! ( is_archive()या is_post_type_archive()पर्याप्त होना चाहिए)

उदाहरण के लिए, अपने विषय के functions.php में निम्नलिखित डालें ...

add_action( 'pre_get_posts', 'my_change_sort_order'); 
    function my_change_sort_order($query){
        if(is_archive()):
         //If you wanted it for the archive of a custom post type use: is_post_type_archive( $post_type )
           //Set the order ASC or DESC
           $query->set( 'order', 'ASC' );
           //Set the orderby
           $query->set( 'orderby', 'title' );
        endif;    
    };

नमस्ते, क्या आप दिखा पाएंगे कि डिफ़ॉल्ट ऑर्डर कैसे काम करता है? यदि संभव हो तो कुछ लिंक।
लेथेश वीएम विला

@LatheeshVMVilla WP को एक ब्लॉग के रूप में विकसित किया गया है, इसलिए समझदार / डिफ़ॉल्ट आदेश पोस्ट_डेट DESC (= अवरोही) द्वारा है, इसलिए यह नवीनतम-पोस्ट-प्रथम है। यदि आप किसी ऐसी चीज़ के लिए WP का उपयोग कर रहे हैं जहाँ समय कम प्रासंगिक है (अधिकांश प्रकार की सूचियाँ, जैसे आपका रिकॉर्ड संग्रह, व्यंजनों, एक शब्दकोष, ...) तो आप अक्सर पोस्ट_टाइटल ASC (= आरोही, इसलिए शीर्षक द्वारा वर्णानुक्रम करना चाहते हैं) संख्याओं से पहले के अक्षर)।
user3445853

धन्यवाद। मेरे वर्गीकरण संग्रह पृष्ठ के लिए ठीक काम करता है।
सेमा हर्नांडेज़

1
<?php
// we add this, to show all posts in our
// Glossary sorted alphabetically
if ( is_category('Glossary') )  {
    $args = array( 
        'posts_per_page' => -1, 
        'orderby'        => 'title', 
        'order'          => 'ASC' 
    );
    $glossaryposts = get_posts( $args );
}
foreach( $glossaryposts as $post ) : setup_postdata( $post );
    ?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>

1
क्या आप यह बता सकते हैं कि इससे ओपी को क्या मदद मिलती है? कृपया, हमेशा कोड के एक टुकड़े के ऊपर एक स्पष्टीकरण जोड़ें। धन्यवाद।
kaiser

यह प्रश्न पुरालेख पर नाम और आरएससी आदेश के अनुसार क्रमबद्ध परिणाम था। संभवत: उत्तरदाता के अनुसार यह कोड Archive.php पर नाम और asc ऑर्डर के अनुसार परिणाम क्रमबद्ध करेगा?
जॉन

0

स्टीफन के जवाब के आगे, यदि आप शीर्षक द्वारा केवल क्वेरी और ऑर्डर करना चाहते हैं, तो आप इसे अपनी टेम्पलेट फ़ाइल में उपयोग कर सकते हैं:

$args = ( array(
'order' => 'ASC',
'orderby' => 'title',
 ) );

query_posts($args);

5
वर्डप्रेस कोड संदर्भ से सीधे - "यह फ़ंक्शन मुख्य क्वेरी को पूरी तरह से ओवरराइड करेगा और प्लगइन्स या थीम के उपयोग के लिए अभिप्रेत नहीं है। मुख्य क्वेरी को संशोधित करने के लिए इसका अत्यधिक-सरलीकृत दृष्टिकोण समस्याग्रस्त हो सकता है और जहां भी संभव हो इसे टाला जाना चाहिए। मामले, मुख्य क्वेरी को संशोधित करने के लिए बेहतर, अधिक बेहतर विकल्प हैं जैसे कि WP_Query के भीतर 'pre_get_posts' कार्रवाई के माध्यम से। " निचला रेखा @Stephen हैरिस के पास इसे पूरा करने का सही तरीका है। developer.wordpress.org/reference/functions/query_posts
माइकल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.