2015-04-28 8 views
9

मैं जो की तरह सेटिंग को पंजीकृत वर्डप्रेस प्लगइन है:वर्डप्रेस get_option लौटने झूठी

register_settings("myplugin_settings","myplugin_option1"); 

और प्लगइन सक्रियण ऐसा विकल्प जोड़ते है पर: जैसे

add_option("myplugin_option1",""); 

फिर अगर मैं विकल्प को अपडेट,:

update_option("myplugin_option1","something else"); 

और बाद में इसे डेटाबेस से प्राप्त करने का प्रयास करें:

$myoption = get_option("myplugin_option1"); 

get_option() झूठा रिटर्न देता है, यहां तक ​​कि विकल्प मौजूद है और मूल्य अपडेट किया गया है।

मुझे पता है कि मूल्य अद्यतन किया जाता है और विकल्प मौजूद हैं, क्योंकि जब मैं क्वेरी चलाने विकल्प मैं मूल्य मिल रहा है पाने के लिए:

global $wpdb; 
$query = 'SELECT * FROM wp_options WHERE option_name = "myplugin_option1"; 
$result = $wpdb->get_results($query); 

यह मैं रिटर्न मूल्य: "कुछ और"

उदाहरण इस के लिए कोड:

$option = get_option("myplugin_option1"); 
if(false == $option){ 
    global $wpdb; 
    $query = 'SELECT * FROM wp_options WHERE option_name = "myplugin_option1"'; 
    $result = $wpdb->get_results($query); 
} 

के बाद इस कोड को निष्पादित किया जाता है, $ परिणाम में शामिल होंगे मूल्य:

Array 
(
    [0] => stdClass Object 
     (
     [option_id] => 11752 
     [option_name] => myplugin_option1 
     [option_value] => something else 
     [autoload] => yes 
    ) 
) 

तो विकल्प मौजूद है और इसका मान है लेकिन get_option() झूठी लौट रहा है।

मुझे यह समस्या केवल 3 विकल्पों के साथ है और केवल एक साइट पर जहां मेरी प्लगइन स्थापित है। क्या किसी के पास कुछ विचार है कि get_option() झूठी वापसी क्यों करता है विकल्प भी डेटाबेस में है और इसका मूल्य "कुछ और" है।

उत्तर

1

इस मुद्दे के साथ यह मुद्दा था कि जिन तीन समस्याओं के साथ मुझे समस्या थी, वे किसी भी तरह से डब्ल्यूपी कैश में दो बार कैश किए गए थे।

तो एक विकल्प दो बार कैश किया गया था, और update_options() हमेशा इन दोनों में से एक को अद्यतन कर रहा था और get_option() हमेशा खाली मूल्य के साथ एक और कैश किया गया था।

यह सुनिश्चित नहीं है कि यह कैसे हुआ, लेकिन कैश साफ़ करने से मेरी समस्या का समाधान हुआ।

0

आपको वर्डप्रेस फ़ंक्शंस का उपयोग करने में सक्षम होने के लिए किसी बाहरी फ़ाइल में फ़ाइल wp-blog-header.php फ़ाइल शामिल करनी चाहिए। वह फ़ाइल आपके वर्डप्रेस रूट फ़ोल्डर में है।

+0

इसमें शामिल है, और वर्डप्रेस फ़ंक्शन ठीक काम कर रहे हैं। मुझे सिर्फ 3 विकल्प के साथ समस्या है, अन्य सभी के लिए यह ठीक काम कर रहा है। मुझे एक लूप में विकल्प मिल रहे हैं और बस असफल हो जाते हैं। – carpics