আমি একাধিক বিকল্পগুলিকে অ্যারে হিসাবে সংরক্ষণ করি, তাই আমার এরকম কিছু হবে ..
<?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'] ); ?> />
বিঃদ্রঃ: অবশ্যই এর মানটির সাথে তুলনা করার আগে কীটি সেট করা আছে তা পরীক্ষা করা বুদ্ধিমানের কাজ হবে (এটি ছোট রাখার জন্য আমি উপরের দিক থেকে বাদ দিয়েছি)।
উপরের সাহায্য করেছে? যদি তা না হয় তবে আমাকে কী কী স্পষ্ট করার প্রয়োজন তা জানান (... বা আমি কী অনুপস্থিত) ..
Re: checked()
ফাংশনটি কোথায় সংজ্ঞায়িত হয়েছে তা আপনি এখানে খুঁজে পেতে পারেন (ওয়ার্ডপ্রেসে)।
http://core.trac.wordpress.org/browser/tags/3.0.2/wp-includes/general-template.php#L2228
প্রথম প্যারামিটারটি মূলত শর্তসাপেক্ষ বিবৃতি, এবং দ্বিতীয় প্যারামিটারটি (যদি আপনি এটি সংজ্ঞায়িত করতে চান) তবে যা পরীক্ষা করা উচিত। এর সাথে তুলনা করার জন্য ডিফল্ট মানটি হ'ল সত্য ... সুতরাং যদি checked( 1 == 1, true )
আমি যা করতে চাই তবে 1 == 1 টি ঠিক সমান কিনা তা পরীক্ষা করে দেখছি। শর্তসাপেক্ষে যদি কোনও ম্যাচ হিট হয় তবে আপনি পাবেনchecked="checked"
ফিরে আসবেন ..
দ্রষ্টব্য: আমি জিনিসগুলি ব্যাখ্যা করতে আবর্জনা বোধ করছি, সুতরাং উপরের আরও স্পেসিফিকেশন প্রয়োজন হলে আমি বিরক্ত হবো না ... কেবল আমাকে জানাতে হবে ..;)
checked( 1 == $options['option_one']
পারেন? কিchecked()
একটি পিএইচপি ফাংশন কারণ আমি এটা ম্যানুয়াল খুঁজে পাইনি।