এক পৃষ্ঠায় একাধিক প্রশ্ন ব্যবহার করার সময় বর্তমান লুপের পোস্ট গণনা পান


10

আমি লুপের ভিতরে বর্তমান পোস্টগুলির একটি গণনা পাওয়ার চেষ্টা করছি। আমি আমার থিমের এক পৃষ্ঠায় একাধিক লুপ ব্যবহার করছি। এখন পর্যন্ত আমার কাছে রয়েছে:

$my_post_count = $wp_query->post_count;

তবে আমি যখন আমার_পোস্ট_কাউন্টটি মুদ্রণ করি তখন এটি আমার ডাব্লুপি সাইটে সমস্ত পোস্টের নম্বর দেয়। এটি একটি পৃষ্ঠায় একাধিক প্রশ্ন ব্যবহার করে কিছু করতে পারে? আমি প্রতিটি লুপের পরে wp_reset_query ব্যবহার করার চেষ্টা করেছি তা নিশ্চিত করার জন্য যে আমি জিনিসগুলি সেভাবে ফেলে দিচ্ছি না। আমি কি ভুল করছি?

উত্তর:


29

$wp_query পৃষ্ঠার প্রধান লুপ ধরে রাখুন এবং একাধিক লুপ তৈরি করতে ব্যবহার করা উচিত নয়।

আপনি যদি নতুন WP_Queryঅবজেক্ট ব্যবহার করছেন তবে আপনার পরিবর্তনশীল যা এটি ধারণ করে তা গণনা অনুসারে থাকবে:

$my_query = new WP_Query();
// stuff
$count = $my_query->post_count;

আপনি যদি ব্যবহার করছেন get_posts()তবে WP_Queryঅবজেক্টটি অ্যাক্সেসযোগ্য নয় এবং আপনার কেবল ফিরে আসা সেটটি গণনা করা উচিত:

$posts = get_posts();
$count = count($posts);

দ্রষ্টব্য: আপনি যদি প্রধান WP_Queryglobal $wp_query
লুপটিতে থাকেন তবে আপনি

5

আমি বিশ্বাস করি যে পোস্ট_কাউন্টটি বিশ্বব্যাপী সঞ্চিত আছে, তাই কাস্টম লুপের আগে আপনাকে সেট করা উচিত 0, যেহেতু আপনি এটি লুপের বাইরে ব্যবহার করতে পারেন, তবে এটি নির্ভর করে আপনি কীভাবে আপনার একাধিক ক্যোয়ারীর কাঠামো গঠন করছেন, সম্ভবত আপনি এগুলি আপনার পোস্টে যুক্ত করতে পারেন ?

আমি লুপের মধ্যে আরও একটি উপায় ব্যবহার করি যা ব্যবহার করে পোস্টগুলি গণনা করে current_post + 1, উদাহরণস্বরূপ।

<?php $my_query = new WP_Query();?>
     <?php if ($my_query->have_posts()) :while ($my_query->have_posts()) : $my_query->the_post();

           $count_posts = $my_query->current_post + 1; //counts posts in loop

     endwhile;?>

2

WP_Query ব্যবহার করে একটি বিকল্প সমাধান হ'ল:

           <?php 
               $args = array(
               'post_type' => 'post'
               );
            $the_query = new WP_Query( $args );
            $totalpost = $the_query->found_posts; 
            ?> 

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.