कस्टम लूप के बाद wp_reset_postdata () या wp_reset_query ()?


42

कुछ सामान के बारे में पढ़ना query_reset_postdataऔर query_reset_queryमुझे भ्रमित करना। उदाहरण के लिए:

  1. क्या wp_reset_postdata और wp_reset_query दोनों का एक साथ उपयोग करने की कोई आवश्यकता है?

  2. http://www.poststat.us/properly-reset-wordpress-query/

ऊपर कहा गया है कि आपको query_reset_postdata()"अलग-अलग प्रश्नों" का उपयोग करते समय ही उपयोग करना चाहिए । Example2 में एक टिप्पणी है:

WP_Query( $args ) = wp_reset_postdata();

तथा

query_posts ( $args ) = wp_reset_query();

और वास्तव में आपको कभी भी उपयोग wp_reset_queryनहीं करना चाहिए क्योंकि आपको query_posts का उपयोग नहीं करना चाहिए !?

WP Codex में यह कहा गया है कि आपको wp_reset_query()कस्टम लूप (पहले उदाहरण) http://codex.wordpress.org/Function_Reference/wp_reset_query के बाद उपयोग करना चाहिए

क्या कोडेक्स गलत है?

जवाबों:


65

दोनों में अंतर यह है कि

  • wp_reset_query() - सुनिश्चित करें कि मुख्य क्वेरी को मूल मुख्य क्वेरी पर रीसेट कर दिया गया है
  • wp_reset_postdata()- यह सुनिश्चित करता है कि वैश्विक $postको मुख्य प्रश्न में वर्तमान पद पर बहाल किया गया है।

दरअसल, स्रोत को देखकर आप देखेंगे कि wp_reset_query()कॉल wp_reset_postdata()। दोनों के बीच एकमात्र अंतर यह रेखा है:

$GLOBALS['wp_query'] = $GLOBALS['wp_the_query'];

(इन wp_reset_query())। तो wp_reset_query()केवल आवश्यक है कि उन दो ग्लोबल्स में अंतर होना चाहिए, और यह केवल तब होता है जब query_posts()कहीं इस्तेमाल किया गया हो।

मुझे उनका उपयोग कब करना चाहिए?

सीधे शब्दों में कहें:

  • wp_reset_postdata() - हर रिवाज के तुरंत बाद WP_Query()
  • wp_reset_query() - प्रत्येक लूप का उपयोग करने के तुरंत बाद query_posts()

क्या मुझे wp_reset_query का उपयोग करना चाहिए

ठीक है, हाँ, लेकिन इसका उपयोग करने के बाद ही इसकी आवश्यकता है query_posts()। जैसा कि आपने बताया है कि आपको कभी भी उपयोग नहीं करना चाहिएquery_posts() । इसलिए यदि आप कभी उपयोग नहीं कर रहे हैं query_posts()तो कॉल करना आवश्यक नहीं हैwp_reset_query() (इसके बजाय wp_reset_postdata()।

संक्षेप में, ऐसा नहीं है कि आपको wp_reset_query()इसके बजाय उपयोग नहीं करना चाहिए wp_reset_postdata(), यह है कि आपको कभी भी इसकी आवश्यकता नहीं होनी चाहिए!


1
तो मूल रूप से आप कह रहे हैं: केवल wp_reset_postdata () का उपयोग करें और कोडेक्स का एक खराब उदाहरण है? (यदि आप इसे सही करना चाहते हैं)
— bestprogrammerintheworld

1
कोडेक्स बदल सकता है, इसलिए मैं इसके बारे में निरपेक्ष बयान देने से बचने जा रहा हूं जो गलत हो सकता है। इसका एक उदाहरण है एक WP_Query()लूप, जो wp_reset_query()अनावश्यक रूप से उपयोग करता है। यह wp_reset_postdata()इसके बजाय उपयोग कर सकता है , लेकिन कोई नुकसान नहीं हुआ है। इसका एक query_posts()उदाहरण भी है जहां यह करता है, और इसका उपयोग करना चाहिएwp_reset_query() । जैसा कि कोडेक्स में उल्लेख किया गया है, हालांकि यह एक बुरा उदाहरण है और इस अर्थ में 'अनुशंसित नहीं' है कि query_posts()इसका उपयोग कभी नहीं किया जाना चाहिए।
— स्टीफन हैरिस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.