21 Juil Enregistrement de plusieurs valeurs de cases à cocher en WordPress
Lors de la création d’un nouveau plugin, on veut ajouter dans la partie administration un nouveau bloc situé à droite au dessus de la partie publié.
Donc ce qu’on doit faire est de créer un nouveau meta box.
On suppose qu’on a deux post_type, celle par défaut du WordPress post et un autre qu’on l’appelle NEW_POST_TYPE
Dans cet exemple on va attribué la liste du NEW_POST_TYPE à le post type par défaut POST.
<?php
add_action("admin_init", "adminInit");
add_action('save_post', 'saveLink');
function adminInit(){
add_meta_box("idAleatoire", "TITRE_DU_BOX", "functionMultipleCheckbox", "post", "normal", "high");
}
/*
TITRE_DU_BOX : est le titre qu'on l'affiche en haut du bloc
high : est pour afficher le nouveau bloc en haut
side : est d'afficher le bloc dans le sidebar
Pour plus d'information à propos du add_meta_box, rendez vous sur https://developer.wordpress.org/reference/functions/add_meta_box/
*/
function functionMultipleCheckbox(){
global $post;
/* BEGIN EXPORT VALUES CHECKED */
$data2=get_post_meta($post->ID, 'nameInput');
$data2=$data2[0];
/* END */
?>
<div style="height:200px;overflow:auto;">
<?php
$argss = array(
'post_type' => 'NEW_POST_TYPE',
'posts_per_page' => '-1'
);
/* on affiche ici la liste des post de type NEW_POST_TYPE */
$loops_terme = new WP_Query( $argss );
while ( $loops_terme->have_posts() ) :
$loops_terme->the_post();
$post_id_terme = get_the_ID();
$queried_post = get_post($post_id_terme);
$title2 = the_title('','',false);
?>
<p>
<input type="checkbox" name="nameInput[]" <?php if(in_array($title2,$data2) ){echo "checked";} ?> value="<?= $title2; ?>" /> <?= $title2; ?>
</p>
<?php
endwhile; ?>
</div>
<?php
}
/* CETTE FUNCTION EST POUR LE SAUVEGARDE DES DONNEES */
function saveLink(){
global $post;
update_post_meta($post->ID, "nameInput", $_POST["nameInput"]);
}