J'essaie de définir une meta_box avec une seule case à cocher, tout va bien, mais si je la décoche et enregistre le message, il marque à nouveau comme vérifié, j'ai jeté un coup d'œil mais je ne trouve pas mon erreur.
Jetez un oeil à mon code.
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']);
}
});
Merci d'avance
add_meta_boxes
action pour ajouter des métaboxes (c'est là spécifiquement pour cela), comme dans l'exemple de laadd_metabox
page codex. Vous bénéficierez également de la transmission du type et de l'objet de publication au rappel.ajoutez simplement une clause else pour supprimer la méta post si elle n'est pas cochée et votre code fera très bien l'affaire, alors changez:
à
la source