कई WP_Query पृष्ठ के साथ छोरों


11

इस बारे में कुछ अन्य प्रश्न हैं (और WP_Query पेजिनेशन बहुत से लोगों के लिए एक बहुत बड़ा प्रश्न लगता है) इसलिए मैं इसे कैसे काम करता हूं, इसके बारे में जानने की कोशिश कर रहा हूं।

मैं इस कोड को पृष्ठांकन के साथ एक एकल कस्टम लूप बनाने में सक्षम हूं:

// http://weblogtoolscollection.com/archives/2008/04/19/paging-and-custom-wordpress-loops/
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$args = array(
    'showposts' => 2,
    'paged' => $paged
);
$wp_query->query($args);
while ($wp_query->have_posts()) : $wp_query->the_post();

// The Post
the_title();
echo '<br>';
the_category(' ');
the_excerpt();
echo '<hr>';

endwhile;
// http://codex.wordpress.org/Function_Reference/paginate_links#Examples
$big = 999999999;
$pag_args = array(
    'base' => str_replace( $big, '%#%', get_pagenum_link( $big ) ),
    'format' => '?paged=%#%',
    'current' => max( 1, get_query_var('paged') ),
    'total' => $wp_query->max_num_pages
);
echo paginate_links($pag_args);
$wp_query = null;
$wp_query = $temp;

... लेकिन स्वाभाविक रूप से अगर मैं इस लूप को कॉपी / पेस्ट करता हूं, तो यह एक सटीक क्लोन के रूप में काम करता है, मतलब, जब आप "पेज 2" ​​पर क्लिक करते हैं तो यह आपको लूप्स के लिए पेज 2 पर ले जाता है।

क्या एक-दूसरे से अलग होने का एक तरीका है ताकि प्रत्येक अलग-अलग paginates?

यहां डुप्लिकेट लूप के साथ पूर्ण कोड पूर्ण है यदि कोई भी अपना स्वयं का स्थानीय संस्करण स्थापित करने में रुचि रखता है और इसके साथ है: http://paste.pocoo.org/show/573108/


इस पोस्ट जो मैं खुद के लिए कई पाश पृष्ठांकन समस्या को हल किया है पर नज़र wordpress.stackexchange.com/questions/126814/...
ewroman

जवाबों:


19

हां, यह किया जा सकता है। कुंजी formatदो प्रश्नों के लिए पैरामीटर को अलग बनाने के लिए है:

    <!-- Cats -->
    <div class="animals">
        <?
            $paged1 = isset( $_GET['paged1'] ) ? (int) $_GET['paged1'] : 1;
            $paged2 = isset( $_GET['paged2'] ) ? (int) $_GET['paged2'] : 1;

            // Custom Loop with Pagination 1
            // http://codex.wordpress.org/Class_Reference/WP_Query#Usage
            $args1 = array(
                'paged'          => $paged1,
                'posts_per_page' => 2,
            );
            $query1 = new WP_Query( $args1 );

            while ( $query1->have_posts() ) : $query1->the_post();
                the_title();
                echo '<br>';
                the_category(' ');
                the_excerpt();
                echo '<hr>';
            endwhile;

            // http://codex.wordpress.org/Class_Reference/WP_Query#Pagination_Parameters
            $pag_args1 = array(
                'format'  => '?paged1=%#%',
                'current' => $paged1,
                'total'   => $query1->max_num_pages,
                'add_args' => array( 'paged2' => $paged2 )
            );
            echo paginate_links( $pag_args1 );
        ?>
    </div>

    <!-- Dogs -->
    <div class="animals">
        <?
            // Custom Loop with Pagination 2
            $args2 = array(
                'paged'          => $paged2,
                'posts_per_page' => 2,
            );
            $query2 = new WP_Query( $args2 );

            while ( $query2->have_posts() ) : $query2->the_post();
                the_title();
                echo '<br>';
                the_category(' ');
                the_excerpt();
                echo '<hr>';
            endwhile;

            $pag_args2 = array(
                'format'  => '?paged2=%#%',
                'current' => $paged2,
                'total'   => $query2->max_num_pages,
                'add_args' => array( 'paged1' => $paged1 )
            );
            echo paginate_links( $pag_args2 );
        ?>
    </div>

बूने का जवाब देने के लिए बहुत बहुत धन्यवाद। मैं देख रहा हूं कि आप क्या कह रहे हैं, लेकिन जब भी मैं get_query_var को बदलने की कोशिश करता हूं, तो यह एक त्रुटि फेंकता है। यहां अपडेट किया गया कोड है: paste.pocoo.org/show/573208 त्रुटि: C: में एक गैर-ऑब्जेक्ट पर सदस्य फ़ंक्शन प्राप्त () को कॉल करें: 27 लाइन पर \ wamp \ www \ wordpress_wp_query_pagination/pp-wn-pp-wp-pp/
कोरी

दो चीजें: 1) आप $wp_queryवैश्विक के साथ कुछ अजीब चीजें कर रहे हैं । (२) WP_Queryअपने आप में कुछ कार्यान्वयन विषमताएँ हैं जिनका उपयोग करना असंभव है get_query_var()और इसके साथ कुछ अन्य फ़ंक्शन हैं, इसलिए मैं आमतौर पर $_GETसुपरग्लोबल को सीधे संदर्भित करता हूं , जिससे कास्टिंग करने से स्वच्छता सुनिश्चित होती है int। मैंने अपने जवाब को पूर्ण कार्य उदाहरण के साथ अद्यतन किया है।
बोर्न गोरगेस

भयानक वरदान! बहुत बहुत धन्यवाद, महान काम करता है। इसे अच्छी तरह से अध्ययन करने का समय। अजीब WP_Query सामान 2008 के इस लेख से था: weblogtoolscollection.com/archives/2008/04/19/… मुझे लगा कि get_query_var एक ही संस्करण प्राप्त कर रहा था, लेकिन इसे $ _GET से सीधे प्राप्त करने के लिए मस्तिष्क नहीं था। फिर, एक बहुत आदमी धन्यवाद। इससे हमेशा के लिए लड़ते रहे।
कोरी

ठंडा। सौभाग्य!
बोएन गोरगेस

आह बकवास। मेरे साथ यह लड़ाई रखने के लिए परवाह है? :) आपके संस्करण के परीक्षण के बाद मैंने देखा कि यह पृष्ठ 1 पर वापस नहीं जाता है। यह पृष्ठ 2 पर अटक जाता है। इसके अलावा, जब आप किसी भिन्न पृष्ठ पर क्लिक करते हैं, तो यह दूसरे लूप को रीसेट करता है। क्या इन $ _GET चरों को एक साथ चेन करना संभव है, इसलिए यह foo.com/?paged_1=2&paged_2-3 याद है ?
कोरी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.