मुझे लगता है कि अब मैं समझ गया हूं कि आप क्या करने की कोशिश कर रहे हैं। जब आप के साथ एक कस्टम क्वेरी चलाने WP_Query
और प्रति पृष्ठ केवल 5 पदों प्राप्त करने के लिए सीमा निर्धारित, केवल 5 पदों क्वेरी के द्वारा प्राप्त किया जाएगा और उस क्वेरी केवल 5 पदों का आयोजन करेगा, लेकिन पृष्ठांकन के लिए, WP_Query
अभी भी पूरे डेटाबेस के माध्यम से चलाता है और उन सभी पदों को गिनता है जो क्वेरी के मानदंड से मेल खाते हैं।
यही कारण है कि देखा जा सकता है जब आप को देखो $found_posts
और $max_num_pages
क्वेरी के गुणों। चलो एक उदाहरण लेते हैं:
आपके पास डिफ़ॉल्ट पोस्ट प्रकार से संबंधित 20 पोस्ट हैं post
। आपको केवल पृष्ठ 5 के बिना नवीनतम 5 पदों की आवश्यकता है। आपकी क्वेरी इस तरह दिखती है
$q = new WP_Query( 'posts_per_page=5' );
var_dump( $q->posts )
उम्मीद के मुताबिक आपको नवीनतम 5 पोस्ट देंगे
echo $q->found_posts
तुम्हे दूंगा 20
echo $q->max_num_pages
तुम्हे दूंगा 4
इस अतिरिक्त कार्य का प्रभाव केवल कुछ पोस्ट वाली साइटों पर कम से कम होता है, लेकिन यदि आप एक साइट को सैकड़ों या हजारों पोस्टों के साथ चला रहे हैं तो यह gt महंगा हो सकता है। यह संसाधनों की बर्बादी है अगर आपको केवल 5 नवीनतम पदों की आवश्यकता है
एक अनलिमेटेड पैरामीटर है जिसे no_found_rows
बुलियन मान का उपयोग किया जाता है जिसका उपयोग आप अपनी क्वेरी को बनाने के लिए कर सकते हैं। यह WP_Query
किसी भी अधिक पदों की तलाश करने के लिए मजबूर नहीं करेगा , क्योंकि यह मापदंड की संख्या को गणित कर रहा है क्योंकि यह पदों की मात्रा को पुनः प्राप्त किया है। यह पैरामीटर पहले से ही निर्मित है get_posts
, यही कारण get_posts
है कि WP_Query
हालांकि get_posts
उपयोग की तुलना में थोड़ा तेज हैWP_Query
निष्कर्ष
अंत में, यदि आप किसी प्रश्न पर पृष्ठांकन का उपयोग नहीं करने जा रहे हैं, तो 'no_found_rows=true'
अपनी क्वेरी में चीजों को गति देने और संसाधनों को बर्बाद करने से बचाने के लिए हमेशा बुद्धिमान होना चाहिए ।
'posts_per_page=5'