ฉันมักจะเก็บหลาย ๆ ตัวเลือกเป็นอาร์เรย์ดังนั้นฉันจะมีอะไรเช่นนี้ ..
<?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()
คุณสามารถค้นหาฟังก์ชั่นที่ถูกกำหนด (ใน WordPress) ได้ที่นี่
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()ฟังก์ชั่น PHP เพราะผมไม่สามารถหาได้ในคู่มือการใช้งาน