त्वरित ब्रेकडाउन
- query_posts - दुर्लभ धार मामलों को छोड़कर उपयोग नहीं करते हैं
- यदि आप किसी पृष्ठ पर डिफ़ॉल्ट क्वेरी को बदलना चाहते हैं तो pre_get_posts - का उपयोग करें
- नया WP_Query - मुख्य क्वेरी से अलग परिणाम प्राप्त करने के लिए उपयोग करें
- get_posts - WP_Query के समान, इसके बजाय केवल सरणी प्रारूप में परिणाम देता है
query_posts
Query_posts का उपयोग करना किसी भी अधिक अनुशंसित नहीं है। जो आप पूरा करने की कोशिश कर रहे हैं उसे पूरा करने के बेहतर तरीके हैं। मुख्य क्वेरी को बदलने की कोशिश कर रहा है? परिणामों को फ़िल्टर करने के लिए एक्शन प्री_गेट_पोस्ट का उपयोग करें (नीचे देखें)। query_posts मूल मुख्य क्वेरी को किनारे पर फेंक देता है (बाद में इसे पहले ही चलाया जा चुका है), और एक नई मुख्य क्वेरी बनाता है। यह सभी पोस्ट संबंधित वैश्विक चर की जगह लेता है, और एक पूरी तरह से नए डेटाबेस कॉल के परिणामस्वरूप होता है। कोई कारण नहीं है कि आप केवल मौजूदा क्वेरी को बदल न दें। मुझे यकीन है कि कुछ किनारे मामले हैं जहां इसका इस्तेमाल किया जाना चाहिए, लेकिन मैं अपने सिर के ऊपर से कोई भी नहीं सोच सकता। नीचे दिए गए विकल्पों में से एक का उपयोग करें, क्योंकि वे संभावना से अधिक बेहतर अनुकूल होंगे।
pre_get_posts
यह एक फिल्टर है। यह एक पृष्ठ पर मुख्य क्वेरी को संशोधित करता है। इसलिए, उदाहरण के लिए, हम मुखपृष्ठ पर लौटे परिणामों की संख्या को बदलना चाहते हैं …
function tj_change_home_number ($ क्वेरी) {if (is_home ()) {$ क्वेरी-> सेट ('पोस्ट_पर_पेज', 2); वापसी; }} add_action ('pre_get_posts', 'tj_change_home_number');
यह मुख्य क्वेरी को केवल मुखपृष्ठ पर 2 पोस्ट वापस करने के लिए बदल देगा।
WP_Query
किसी भी टेम्पलेट पर मुख्य प्रश्न जिसे WP_Query का एक उदाहरण है। जब आप एक टेम्पलेट के भीतर वैश्विक पोस्ट चर के साथ बातचीत करते हैं, तो यह WP_Query का परिणाम है। इसके लिए उपयोग के मामले कई हैं, लेकिन जैसा कि get_posts के साथ है, मैं संबंधित पोस्टों को खींचने के उद्देश्य से एक नया WP_Query घोषित करूंगा, उन पंक्तियों के साथ कुछ। बस ध्यान रखें कि यदि आप नए WP_Query के माध्यम से लूप करते समय the_post () फ़ंक्शन चलाते हैं, तो वैश्विक पोस्ट डेटा को मूल डेटा क्वेरी पर रीसेट करने के लिए लूपिंग करने के बाद फ़ंक्शन wp_reset_postdata () चलाएं ।
get_posts
Get_posts का उपयोग करके, आप एक नए WP_Query को कॉल करने में प्रभावी होते हैं, और यह जानकारी एक सरणी प्रारूप में वापस आ जाती है। जब मैं मुखपृष्ठ पर स्लाइडर के लिए पोस्ट वापस कर रहा हूँ, या किसी साइडबार में कुछ संबंधित पोस्ट कॉल कर रहा हूँ, तो मैं आमतौर पर get_posts का उपयोग करूँगा। WP_Query को आसानी से इस्तेमाल किया जा सकता है, लेकिन इसका एक अच्छा तरीका है कि पोस्ट को वैश्विक पोस्ट चर को संशोधित किए बिना पोस्ट की एक सरणी प्राप्त करें। मेरे विचार में इसका उपयोग सबसे सरल और सबसे आसान है। आपके डेटा वापस आने के बाद कोई फ़ंक्शन कॉल आवश्यक नहीं है, बस एक सरणी के माध्यम से लूपिंग।
यह थोड़ा भ्रामक हो सकता है, इसलिए नीचे टिप्पणी में सवाल पूछने के लिए स्वतंत्र महसूस करें।
संदर्भ:
WP_Query
pre_get_posts
query_posts
get_posts
