ฉันพยายามตั้งค่า meta_box ด้วยช่องทำเครื่องหมายเดียวทุกอย่างเป็นไปด้วยดี แต่ถ้าฉันยกเลิกการเลือกและบันทึกโพสต์มันจะทำเครื่องหมายอีกครั้งเมื่อทำเครื่องหมายฉันได้ดูแล้ว แต่ไม่พบข้อผิดพลาด
ลองดูรหัสของฉัน
function am_checkbox_option() {
global $post;
$custom = get_post_custom($post->ID);
$front_event = $custom["front_event"][0];
wp_nonce_field(__FILE__, 'am_front_event');
if ( $front_event ) {
$checked = "checked=\"checked\"";
} else {
$checked = "";
}
?>
<label>Display Content? (type yes):</label>
<input type="checkbox" name="front_event" value="true" <?php echo $checked; ?> />
<?php
}
}
add_action('save_post', function() {
if ( defined( 'DOING_AUTOSAVE') && DOING_AUTOSAVE ) return;
global $post;
if ( $_POST && !wp_verify_nonce($_POST['am_front_event'], __FILE__) ) {
return;
}
if ( isset($_POST['front_event']) ) {
update_post_meta($post->ID, 'front_event', $_POST['front_event']);
}
});
ขอบคุณล่วงหน้า
add_meta_boxes
ดำเนินการสำหรับการเพิ่ม metaboxes (มันมีเฉพาะสำหรับมัน) ตามตัวอย่างในadd_metabox
หน้า codex นอกจากนี้คุณยังจะได้รับประโยชน์จากการโพสต์ประเภทและโพสต์วัตถุไปยังการโทรกลับ