পৃষ্ঠাগুলি সহ একাধিক ডব্লিউপি_কিউুরি লুপ করে


10

এটি সম্পর্কে আরও কয়েকটি প্রশ্ন রয়েছে (এবং ডাব্লুপি_কিউয়ের পৃষ্ঠাগুলি অনেক লোকের কাছে একটি বিশাল প্রশ্ন বলে মনে হচ্ছে) সুতরাং আমি কীভাবে এটি কার্যকর করতে পারি তা সঙ্কুচিত করার চেষ্টা করছি।

পৃষ্ঠাগুলি এই কোডটি সহ আমি একটি একক কাস্টম লুপ তৈরি করতে সক্ষম:

// 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 এ নিয়ে যায়।

এগুলি একে অপরের থেকে আলাদা করার কোনও উপায় রয়েছে যাতে প্রতিটি প্যাগিনেট আলাদাভাবে আলাদা হয়?

যদি কেউ তাদের নিজস্ব স্থানীয় সংস্করণ সেট আপ করতে এবং এটিতে টোয়াই করতে আগ্রহী তবে ডুপ্লিকেট লুপের সাথে সম্পূর্ণ কোডটি এখানে রয়েছে: http://paste.pocoo.org/show/573108/


এই পোস্টটি দেখুন যা আমি নিজের জন্য একাধিক লুপ
পৃষ্ঠাগুলি

উত্তর:


18

হ্যাঁ, এটি করা যেতে পারে। 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 পরিবর্তন করার চেষ্টা করব তখন এটি একটি ত্রুটি ছুড়ে দেয়। এখানে আপডেট হওয়া কোডটি রয়েছে: পেস্ট.পোকো.আর.কম / শো / 7373৩০৮৮ ত্রুটি: সি এর একটি অ-অবজেক্টে সদস্য ফাংশনটিতে কল করুন:
কোরি

দুটি জিনিস: 1) আপনি $wp_queryবিশ্বব্যাপী কিছু বিজোড় কাজ করছেন । (২) WP_Queryনিজের মধ্যে কিছু বাস্তবায়ন বৈষম্য রয়েছে যা এটি ব্যবহার করা অসম্ভব করে তোলে get_query_var()এবং এর সাথে কিছু অন্যান্য ক্রিয়াকলাপ তৈরি হয়, তাই আমি সাধারণত $_GETসুপারগ্লোবালকে সরাসরি উল্লেখ করি , কাস্টিং দ্বারা স্যানিটাইজ করার বিষয়টি নিশ্চিত করে int। আমি আমার উত্তরটি পুরো কাজের উদাহরণ দিয়ে আপডেট করেছি।
বুন গর্জেস

অসাধারণ বুন! অনেক ধন্যবাদ, দুর্দান্ত কাজ করে। এটি পুঙ্খানুপুঙ্খভাবে অধ্যয়নের সময়। অদ্ভুত WP_Query স্টাফ এই ২০০৮ সালের নিবন্ধটি থেকে ছিল: ওয়েবলগটোলস্কলিকেশন / আর্কাইভস / ২০০৮ / ০৪ / ১৯ / ured আমি বুঝতে পেরেছিলাম যে get_query_var একই বার পেয়েছে, তবে। _GET দিয়ে সরাসরি এটি পাওয়ার জন্য মস্তিষ্ক নেই। আবার, অনেক মানুষকে ধন্যবাদ। চিরদিনের সাথে এই লড়াই করা হয়েছে।
কোরি

কুল। শুভকামনা!
বুন জর্জেস

আহ ক্রম্প। আমার সাথে এই লড়াই চালিয়ে যেতে যত্নশীল? :) আপনার সংস্করণটি পরীক্ষা করার পরে আমি লক্ষ্য করেছি যে এটি পৃষ্ঠা 1 এ ফিরে যায় না 1. এটি পৃষ্ঠা 2 এ আটকে যায় Also এছাড়াও, আপনি যখন কোনও ভিন্ন পৃষ্ঠাতে ক্লিক করেন, তখন এটি অন্য লুপটি পুনরায় সেট করে। এই G _GET ভেরিয়েবলগুলি একসাথে শৃঙ্খলাবদ্ধ করে নেওয়া কি এটি foo.com/?paged_1=2&paged_2=3 মনে রাখে ?
কোরি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.