मैं एक सरणी के रूप में कई विकल्पों को संग्रहीत करता हूं, इसलिए मुझे ऐसा कुछ करना होगा ..
<?php $options = get_option( 'myoption' ); ?>
<input type="checkbox" name="myoption[option_one]" value="1"<?php checked( 1 == $options['option_one'] ); ?> />
<input type="checkbox" name="myoption[option_two]" value="1"<?php checked( 1 == $options['option_two'] ); ?> />
हालाँकि, यह निर्भर करता है कि कॉलबैक फ़ंक्शन जो आने वाले डेटा सौदों को सहेजे गए मूल्य से बचाता है (जिस कॉलबैक को आपको तीसरे पैरामीटर के रूप में परिभाषित किया जाना चाहिएregister_setting
)। व्यक्तिगत रूप से जब मैं चेकबॉक्स से निपटता हूं तो मैं सरणी कुंजी सेट नहीं करता, जहां अन्य लोग 0 को कुंजी सेट करने का विकल्प चुन सकते हैं (या इसके बजाय जो भी हो) ...
तो मेरा कोड वास्तव में इस तरह दिखता है ..
<?php $options = get_option( 'myoption' ); ?>
<input type="checkbox" name="myoption[option_one]" value="1"<?php checked( isset( $options['option_one'] ) ); ?> />
<input type="checkbox" name="myoption[option_two]" value="1"<?php checked( isset( $options['option_two'] ) ); ?> />
अगर मैं केवल चेकबॉक्स के साथ काम कर रहा हूं तो मेरा स्वच्छता कॉलबैक कुछ लाइनों के साथ दिखेगा।
public function on_option_save( $options ) {
if( !is_array( $options ) || empty( $options ) || ( false === $options ) )
return array();
$valid_names = array_keys( $this->defaults );
$clean_options = array();
foreach( $valid_names as $option_name ) {
if( isset( $options[$option_name] ) && ( 1 == $options[$option_name] ) )
$clean_options[$option_name] = 1;
continue;
}
unset( $options );
return $clean_options;
}
मेरे एक प्लगइन वर्ग (केवल एक चेकबॉक्स विकल्पों के साथ एक प्लगइन) से सीधे रिप्ड, लेकिन यह कोड नहीं है जिसे आप काम करने की उम्मीद कर सकते हैं यदि आप कॉपी करते हैं, तो यह केवल चित्रण के लिए है।
रेडियो के लिए, यदि आप कई चयन का उपयोग नहीं कर रहे हैं तो यह कुछ इस तरह से होता है ।।
<?php $options = get_option( 'my_option' ); ?>
<input type="radio" name="myoption[option_three]" value="value1"<?php checked( 'value1' == $options['option_three'] ); ?> />
<input type="radio" name="myoption[option_three]" value="value2"<?php checked( 'value2' == $options['option_three'] ); ?> />
नोट: यह महत्वपूर्ण है कि कुंजी की जांच करने के लिए बुद्धिमान होना चाहिए, यह मान के खिलाफ तुलना करने से पहले सेट किया गया है (मैंने इसे छोटा रखने के लिए ऊपर से छोड़ दिया है)।
क्या उपरोक्त मदद की? यदि नहीं, तो मुझे बताएं कि क्या स्पष्ट करने की आवश्यकता है ... (या मुझे क्या याद आ रहा है) ।।
उत्तर: checked()
आप पा सकते हैं कि फ़ंक्शन कहाँ परिभाषित है (वर्डप्रेस में)।
http://core.trac.wordpress.org/browser/tags/3.0.2/wp-includes/general-template.php#L2228
पहला पैरामीटर मूल रूप से एक सशर्त विवरण है, और दूसरा पैरामीटर (यदि आप इसे परिभाषित करना चाहते हैं) तो इसके खिलाफ जांच करना है। के खिलाफ तुलना करने के लिए डिफ़ॉल्ट मान TRUE है ... इसलिए यदि checked( 1 == 1, true )
मैं ऐसा करने के लिए जाँच कर रहा था अगर 1 == 1 सच के बराबर है। अगर सशर्त एक मैच हिट करता है, तो आप checked="checked"
वापस आ जाते हैं ।।
नोट: मैं चीजों को समझाने में बकवास कर रहा हूं, इसलिए यदि उपरोक्त को और स्पष्टीकरण की आवश्यकता है तो मैं नाराज नहीं होऊंगा ... बस मुझे बताएं ...;)
checked( 1 == $options['option_one']
करता है? हैchecked()
एक php समारोह क्योंकि मैं इसे मैनुअल में नहीं मिल सका।