পোস্ট_পার_পেজের সীমা নেই


41

আমি সব পোস্ট দিয়ে ফিরে আসতে চাই query_posts। আমি posts_per_pageসত্যিই একটি উচ্চ সংখ্যায় সেট করার চেষ্টা করেছি , তবে query_postsফ্রিক আউট করে এবং কোনও পোস্ট ফেরত দেয় না। সীমা ছাড়াই পোস্টগুলি জিজ্ঞাসা করার সঠিক উপায় কী?

$args = array(
    'post_type'      => 'post',
    'cat'            => '22,47,67',
    'orderby'        => 'name',
    'order'          => 'ASC',
    'hide_empty'     => 1,
    'depth'          => 1,
    'posts_per_page' => ?
    );

6
আমি কিছুক্ষণের জন্য গুগলিং করছি এবং ডাব্লুপি কোডেক্স অনুসন্ধান করছি, তবে আমি এই সহজ প্রশ্নের সরাসরি উত্তর খুঁজে পাই না। আমি বিশ্বাস করি যে আমার প্রশ্নটি উদাহরণ কোড সহ পরিষ্কারভাবে বর্ণিত হয়েছে, এবং আমার প্রচেষ্টা কী ছিল (যুক্তির জন্য একটি উচ্চমূল্য নির্ধারণ করে)। আমি কোনও ডাব্লুপি বিশেষজ্ঞ নই, সুতরাং আমি কেন এখানে প্রশ্ন জিজ্ঞাসা করতে এসেছি তা নিশ্চিত। এমনকি আপনার কাছে তুচ্ছ মনে হওয়া প্রশ্নের উত্তর সরবরাহ করা এই স্ট্যাক এক্সচেঞ্জ সম্প্রদায়গুলিকে বৃদ্ধিতে সহায়ক। ক্রেপী ফোরামের লিঙ্কের বিপরীতে আমি ব্যক্তিগতভাবে আমার অনুসন্ধান ফলাফলগুলিতে স্ট্যাক ওভারফ্লো লিঙ্কটি দেখতে পছন্দ করি।
বাঞ্জার

এছাড়াও, উত্তরের জন্য ধন্যবাদ। আপনার এটিকে উত্তর হিসাবে পোস্ট করা উচিত, কোনও মন্তব্য নয়, তাই আমি এটি গ্রহণ করতে পারি।
বাঞ্জার

আমি আপনার বক্তব্য পেয়েছি এবং আমি প্রশ্ন লেখার আপনার প্রচেষ্টা প্রশংসা করি । আমি এও সম্মত যে অ-বিশেষজ্ঞ প্রশ্নগুলি এই সম্প্রদায়টিতে নিজেকে মূল্যবান প্রমাণ করতে পারে। অন্যদিকে এ জাতীয় অনেক প্রশ্ন এখানে কিছু বিশেষজ্ঞদের জড়িত হতে নিরুৎসাহিত করতে পারে। আমার অনুমানের মধ্যে এটি একরকম ভারসাম্য। যাইহোক আমি একজন বড় ভোটার তাই আমি আপনার পরবর্তী প্রশ্নগুলির জন্য অপেক্ষা করছি :) ডাব্লুপিএসইতে এখানে একটি দুর্দান্ত সময় কাটান।
মিশাল মৌ

দ্রষ্টব্য: আপনি প্রতিস্থাপন করতে চান typeজন্য post_type(অথবা পুরাপুরি এই লাইন সরাতে)। এই ছোট্ট ভুলটিকে কাউকে পেস্ট করার হাত থেকে রোধ করার জন্য আমি রটউইকের উত্তর এবং আপনার প্রশ্ন উভয়ই সম্পাদনা করব।
মিশাল মৌ

@ মোগলি সংশোধন লোকটির জন্য ধন্যবাদ ... স্রেফ পোস্ট_পার_পৃষ্ঠের উপর দৃষ্টি নিবদ্ধ রেখে তাই টাইপটি অনুলিপি করেছেন! ;)
রটউইক গাঙ্গুরদে

উত্তর:


82

-1 আপনার উত্তর! দেখুন posts_per_page এখানে

$args = array(
'post_type'      => 'post',
'cat'            => '22,47,67',
'orderby'        => 'name',
'order'          => 'ASC',
'hide_empty'     => 1,
'depth'          => 1,
'posts_per_page' => -1
);

গুরুত্বপূর্ণ সতর্কতা : এর ফলে খুব বিশাল ক্যোয়ারী তৈরি হতে পারে যা সাইটটি নীচে নামিয়ে আনতে পারে। আপনার ডাটাবেস এটি পরিচালনা করতে পারে তা নিশ্চিত হলেই এটি করুন। পাবলিক থিম বা প্লাগইনগুলিতে নেই।


6
গুরুত্বপূর্ণ সতর্কতা: এর ফলে খুব বিশাল ক্যোয়ারী তৈরি হতে পারে যা সাইটটি নীচে নামিয়ে আনতে পারে। আপনার ডাটাবেস এটি পরিচালনা করতে পারে তা নিশ্চিত হলেই এটি করুন। পাবলিক থিম বা প্লাগইনগুলিতে নেই।
ফুসিয়া

@ টসচো উত্তরের আপডেট হিসাবে আপনার মন্তব্য যুক্ত করা হচ্ছে।
রটউইক গাঙ্গুরদে

আপনি আমার জীবন রক্ষা!!
ডার্লান ডিয়েটারিচ

নিবন্ধন করুন :)
রটউইক গাঙ্গুরদে

23

অথবা বিকল্পভাবে আপনি যুক্তিটি WP_Query(যা query_postsব্যবহার করে) পাস করতে পারেন nopagingযা মূলত একই জিনিসটি করে ..

$args = array(
    'nopaging' => true
    // Your other args, etc..
);

এটি ঠিক একই কাজ করবে, তবে আপনি যদি পরে এটির দিকে ফিরে তাকাতে হয় এবং আপনি কী করছেন তা মনে করতে না পারলে আমি ব্যক্তিগতভাবে অনুভব করি এটি আপনার কাছে আরও স্পষ্ট হয়ে উঠবে, আপনি আর্গুমেন্টগুলির মধ্যে সেই পরামিতিটি নিয়ে কী ইচ্ছা করছেন? অ্যারে।

আমি যেমন উল্লেখ করেছি, তারা উভয়ই একই অর্জন করবে।

একাধিক পদ্ধতির জন্য আঘাত করতে পারে না এবং আপনি যা জানেন তা ভাগ করে নেওয়া সবসময়ই চমৎকার, আপনার উত্তর ইতিমধ্যে পর্যাপ্ত থাকার পরেও আমার উত্তরটির কারণ এটিই যথেষ্ট ..


3

আপনার শিশু থিম ফাংশন ফাইল থেকে:

add_action( 'pre_get_posts', 'wpsites_no_limit_posts' );

function wpsites_no_limit_posts( $query ) {

if( $query->is_main_query() && !is_admin() && is_home() ) {

$query->set( 'posts_per_page', '-1' );
$query->set( 'order', 'ASC' );
$query->set( 'post_type', 'post' );
$query->set( 'cat', '22,47,67' );
$query->set( 'orderby', 'name' );
$query->set( 'order', 'ASC' );
$query->set( 'hide_empty', '1' );
$query->set( 'depth', '1' );

    }

}

1

আপনার ইস্যুটির সঠিক উত্তর হ'ল 'posts_per_page' => -1কারণ -1অন্য ব্যবহারকারীরা উত্তর হিসাবে প্রতি পৃষ্ঠায় সীমাহীন পোস্ট প্রদান করবে।

আমি এই প্রশ্ন / এটিতে একটি অ্যাড-অন যোগ করতে চাই,

আপনি যদি ওয়ার্ডপ্রেস প্রশাসন প্যানেলে পঠন সেটিং থেকে প্রতি পৃষ্ঠায় পোস্টের সংখ্যা পেতে চান তবে আপনাকে get_option()ফাংশনটি কল করতে হবে এবং posts_per_pageএটিতে একটি স্ট্রিং হিসাবে পাস করতে হবে।

$args = array(
    'post_type'      => 'post',
    'cat'            => '22,47,67',
    'orderby'        => 'name',
    'order'          => 'ASC',
    'hide_empty'     => 1,
    'depth'          => 1,
    'posts_per_page' => get_option('posts_per_page')
    );

আমি আশা করি এই উত্তরটি কেউ যেমন আমাকে সহায়তা করবে তেমনভাবে সহায়তা করবে। হ্যাপি কোডিং স্ট্যাকেক্সচেঞ্জ ব্যবহারকারীরা


আসলে এটি একটি দুর্দান্ত সংযোজন!
হারবার্ট ভ্যান-ভালিট

1

অথবা ..

function getAll($arg, $posts_per_page = 50)
{
    $data = array();
    $page = 1;

    do{
        $arg['paged'] = $page;
        $arg['posts_per_page'] = $posts_per_page;

        $query = new WP_Query($arg);

        foreach ($query->posts as $post){
            $data[] = $post;
        }

        $page++;

    }while(count($query->posts) === $posts_per_page);

    return $data;
}

2
আপনার কোডটি, প্রশ্নটি সমাধান করার জন্য আপনার ধারণাটি ব্যাখ্যা করার জন্য আপনার প্রসঙ্গ যুক্ত করা উচিত।
22:25

1

কিছু সংশোধন করে রিকার্ডো ব্যবহার করা:

static $paged;
$post_ids = [];
do {
    $paged++;
    $defaults = [
        'fields' => 'ids', // Only return the ID field to make this query faster.
        'post_type' => 'post',
        'posts_per_page' => 100,
        'no_found_rows' => false, // We need pagination & the count for all posts found.
        'paged' => $paged,
        'update_post_term_cache' => false,
        'update_post_meta_cache' => false,
    ];
    $query = new WP_Query($defaults);
    if ($query->have_posts()) {
        foreach ($query->posts as $id) {
            $post_ids[] = $id;
        }
    }
} while ($query->max_num_pages > $paged);

return $post_ids;

এটি নাটকীয়ভাবে কেবল আইডি সারিটির বিরুদ্ধে জিজ্ঞাসা করে এবং টার্ম এবং মেটা ক্যাশে আপডেট করা এড়িয়ে কোয়েরির সময় বাড়িয়ে তুলবে।


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