Saya mencoba untuk mengatur meta_box dengan satu kotak centang, semuanya berjalan dengan baik, namun jika saya hapus centang dan menyimpan posting, itu menandai lagi sebagai dicentang, saya telah melihat tetapi saya tidak dapat menemukan kesalahan saya.
Lihatlah kode saya.
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']);
}
});
Terima kasih sebelumnya
add_meta_boxes
tindakan untuk menambahkan metabox (ada khusus untuk itu), seperti contoh diadd_metabox
halaman codex. Anda juga akan mendapat manfaat untuk mendapatkan jenis posting dan objek posting diteruskan ke panggilan balik.sederhana tambahkan klausa lain untuk menghapus meta posting jika tidak dicentang dan kode Anda akan baik-baik saja, jadi ubah:
untuk
sumber