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