क्या प्रत्येक विकल्प को प्रत्येक अनुरोध पर मेमोरी में लोड किया जाता है?


25

क्या सभी विकल्प चर डेटाबेस से लाए गए हैं और प्रत्येक अनुरोध पर कैश में लोड किए गए हैं?

जवाबों:


24

हाँ, की तरह। जब get_optionकॉल किया जाता है, तो वर्डप्रेस नामक एक फ़ंक्शन चलाता है wp_load_alloptions, जो या तो सभी ऑटोलॉइड विकल्पों की कैश्ड कॉपी को पकड़ लेता है या उन सभी विकल्पों को कैश में लोड करता है। फिर wp_load_alloptionsसभी ऑटोलेड विकल्प की एक सरणी देता है। यदि आपका विकल्प ऑटोलोडेड है (निर्दिष्ट जब आप add_optionफ़ंक्शन का उपयोग करते हैं), तो यह इस सरणी का हिस्सा होगा और वापस आ जाएगा।

यदि आपका विकल्प ऑटो लोडेड नहीं है, तो वर्डप्रेस उस विकल्प के लिए विशेष रूप से कैश में दिखता है और यदि यह है तो मान लौटाता है। यदि वह याद आती है, तो डेटाबेस में जाने के लिए अंतिम गिरावट है, मूल्य प्राप्त करना, इसे कैश सेट करना और फिर इसे वापस करना।

अंत में, यदि कोई विकल्प बिल्कुल नहीं मिलता है (उदाहरण के लिए विकल्प नाम अमान्य था), वर्डप्रेस स्टोर करता है उस विकल्प का नाम कैश्ड ऐरे में है notoptions। यदि गैर-विकल्प के लिए बाद में कॉल किए जाते हैं, तो WP पहले नोटिफ़िकेशन सरणी की जांच करता है, इसलिए यह उस चीज़ के लिए समय की बर्बादी नहीं करता है जो वहां नहीं है।

यदि आप get_optionप्रति पृष्ठ लोड के लिए कई बार कॉल करने के बारे में चिंतित हैं , तो मत बनो। वर्डप्रेस पहली get_optionकॉल के बाद ऑप्शन वैल्यू को कैश करेगा चाहे उसका ऑटोलॉइड हो या नहीं।

क्या हो रहा है यह देखने के लिए स्रोत कीget_option जाँच करें ।


3

नहीं,

केवल विकल्प जो विशेष रूप से ऑटोलैड के साथ लोड किए गए हैं, सही पर सेट हैं

Http://codex.wordpress.org/Function_Reference/add_option देखें

इसलिए यदि यह एक ऐसा विकल्प है जो हर पृष्ठ पर आवश्यक है, जब आप इसे db में जोड़ते हैं, तो autoload = true सेट करें।

उसके बाद, बस सामान्य रूप से get_option का उपयोग करें - wp कैशिंग आदि को संभाल लेगा।


1
WP ऑटोलॉग की परवाह किए बिना कैशिंग को संभालता है।
क्रिसगुइटगर्गी

0

हाँ,

ऑटोलैड को हां / सच में सेट करने की आवश्यकता नहीं है। यह डिफ़ॉल्ट रूप से हां पर सेट है: http://codex.wordpress.org/Function_Reference/add_option - अंतिम फ़ंक्शन पैरामीटर ($ ऑटोलॉड):

क्या यह विकल्प स्वचालित रूप से फ़ंक्शन wp_load_alloptions () के द्वारा लोड किया जाना चाहिए (प्रत्येक पृष्ठ लोड पर ऑब्जेक्ट कैश में विकल्प डालता है)? मान्य मान: हाँ या नहीं। डिफ़ॉल्ट: हाँ

हालाँकि, यदि आप इसे नहीं पर सेट करते हैं, तो विकल्प कैश में नहीं डाला जाएगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.