कस्टम लूप के बाद 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.