विकल्प और सेटिंग में क्या अंतर है?


14

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

विकल्प एपीआई और सेटिंग्स एपीआई के बीच अंतर क्या है ?

मेरे पास 100 से अधिक व्यवस्थापक विकल्पों के साथ एक थीम है, मुझे उन्हें कैसे पंजीकृत और संग्रहीत करना चाहिए? इस समय मैं विकल्प एपीआई का उपयोग कर रहा हूं, लेकिन मैं इससे बहुत खुश नहीं हूं, हर एक विकल्प को अलग से पंजीकृत किया जा रहा है, इसलिए वे बहुत सारे डेटाबेस प्रश्न बनाते हैं।

मैं इस समय वर्डप्रेस विकल्पों / सेटिंग्स को संग्रहीत करने के तीन तरीके देखता हूं:

1. विकल्प एपीआई - पुराना (सबसे खराब?) तरीका।

(मैं यह पहले से ही उपयोग कर रहा हूँ)

<form method="post" action="options.php">
<?php wp_nonce_field('update-options'); ?>        

// all the inputs

<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="option1,option2,option3,..." />
<p class="submit">
<input type="submit" value="<?php _e('Save Changes') ?>" />
</p>
</form>

और फिर सामने के अंत में:

echo get_option('option1'); 

बदसूरत लगता है और मुझे नहीं लगता है कि बड़ी संख्या में विकल्पों को संग्रहीत करने का सही तरीका है (मैं उन्हें किसी तरह समूह बनाना पसंद करूंगा)।

2. विकल्प एपीआई - एक बड़े सरणी के रूप में 1 विकल्प।

मुझे यकीन नहीं है कि एचटीएमएल फॉर्म, किसी का उपयोग करके इस सरणी को कैसे अपडेट किया जाए? मेरा मानना ​​है कि इसे जाना चाहिए:

$opt['option1'] = foo
$opt['option2'] = foo
$opt['option3'] = bar

update_option('theme_settings',$opt);

और फिर सामने के अंत में:

$settings = get_option('theme_settings');
echo $settings['option1']; 
echo $settings['option2']; 
echo $settings['option3']; 

मैंने सुना है कि यह वास्तव में प्रश्नों की संख्या कम कर देता है और मेरे पास एक विकल्प के रूप में यह सब है। मैं इसका उपयोग करना पसंद करूंगा, लेकिन जैसा कि मैंने ऊपर उल्लेख किया है, मुझे यकीन नहीं है कि वर्डप्रेस एडमिन फॉर्म में विकल्पों की इस सरणी को कैसे अपडेट किया जाए। मुझे लगता है: <input type="hidden" name="theme_settings" value="option1,option2,option3,..." />नए तत्वों को जोड़ने के बजाय सरणी को अधिलेखित कर देंगे?

3. सेटिंग्स एपीआई - नया तरीका।

बहुत सारे अतिरिक्त कोड की आवश्यकता है:

function register_theme_settings() {
    //register our settings   
    register_setting( 'theme-settings', 'option1' );     
    register_setting( 'theme-settings', 'option2' );     
    register_setting( 'theme-settings', 'option3' );     
    register_setting( 'theme-settings', 'option4' );     
    register_setting( 'theme-settings', 'option5' );     
    // imagine this for 100 and more options    
};

और मुझे यकीन नहीं है कि सरणी के रूप में एक विकल्प के साथ इस और विधि के बीच क्या अंतर है?

tl; डॉ। तो, मुझे अपनी थीम सेटिंग्स स्टोरेज को कैसे प्रोजेक्ट करना चाहिए ताकि यह तेजी से काम कर सके और सभी विकल्पों / सेटिंग्स को एक ही स्थान पर स्टोर कर सके, इसलिए, मैं उदाहरण के लिए, इन सभी को एक साधारण फ़ंक्शन के साथ गूंज / डंप करूँगा (हाँ , मैं इसे बुरी तरह से करना चाहता हूं लेकिन मुझे नहीं पता कि इस सेटिंग्स एपीआई के साथ ऐसा कैसे किया जाए)। दूसरी विधि अब तक की सबसे अच्छी लगती है।

जवाबों:


11

विकल्प एपीआई मुख्य रूप से एक डेटाबेस एपीआई है, जो आपको डेटाबेस के विकल्प तालिका में मूल्यों को आसानी से प्राप्त करने और संग्रहीत करने की अनुमति देता है।

सेटिंग्स एपीआई एक इंटरफ़ेस एपीआई है। यह आपको एक तरीके से सेटिंग्स स्क्रीन बनाने की अनुमति देता है जो भविष्य में वर्डप्रेस इंटरफेस में बदलाव के साथ-साथ सुरक्षा (गैर-सफेद और वैधता और सत्यापन और इस तरह) को स्वचालित रूप से और अधिक आसानी से रोलिंग-अपने-अपने कोड को संभालने के लिए अनुकूल होगा।

सेटिंग API पर अधिक: http://ottopress.com/2009/wordpress-settings-api-tutorial/


3
+1। सेटिंग्स एपीआई सही दृष्टिकोण है, और बिना आंख को बल्लेबाजी किए आपके 100 थीम विकल्पों को संभाल लेगा। कुछ मूर्खों ने वर्डप्रेस थीम्स में सेटिंग्स एपीआई को शामिल करने के लिए वास्तव में लंबे समय तक घुमावदार ट्यूटोरियल लिखा ।
चिप बैनेट

ओटो, @Chip बेनेट धन्यवाद दोस्तों। मेरे पास एक और अतिरिक्त प्रश्न है - प्रलेखन के अनुसार मुझे प्रत्येक व्यवस्थापक पृष्ठ के लिए कई सेटिंग्स समूह बनाने चाहिए, क्या यह प्रदर्शन / प्रश्नों की संख्या को किसी तरह प्रभावित करेगा? क्या एक समूह के भीतर सभी विकल्पों को रखने में कुछ भी गलत है (चलो 'विषय-सेटिंग्स' कह दें) जैसा कि मैंने अपने प्रश्न को पढ़ने के लिए बहुत पहले समझाया था? :)
Wordpressor

2
मैं केवल एक विकल्प समूह का उपयोग करने की सलाह दूंगा। यदि आपको UI संगठन की आवश्यकता है, तो सेटिंग अनुभागों और सेटिंग्स पृष्ठ टैब का उपयोग करें।
चिप बेनेट

@Chip बेनेट, ठीक है, बहुत बहुत धन्यवाद :) ग्रेट ट्यूटोरियल btw।
Wordpressor

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