Je souhaite afficher des publications personnalisées dans une page à l'aide de l'identifiant de la publication, tiré du texte du personnalisateur, où mon code est ici
<?php
$query = new WP_Query( array( 'post_type' => 'post', 'post__in' => array( get_theme_mod('fp_post') ) ) );
while ($query -> have_posts()) : $query -> the_post();
the_title();
endwhile;
?>
où fp_post est le nom du paramètre de personnalisation.
quand utiliser ce code, il ne montre qu’un message, mais quand il utilise 179,182,185 (numéro d’identification) à la place de get_theme_mod ( 'fp_post') affiche tous les articles
lorsque vous imprimez la valeur de fp_post , il affiche 179,182,185
Le paramètre post__in
nécessite un tableau. Consultez la documentation WP_Query .
Avec votre champ de personnalisation, vous n'enregistrez pas de tableau, vous enregistrez une chaîne séparée par des virgules. Alors essayez quelque chose comme ça:
$my_field = get_theme_mod('fp_post');
// create an array from comma separated values
$the_post_id_array = explode(',', $my_field);
$query = new WP_Query( array( 'post_type' => 'post', 'post__in' => $the_post_id_array ) );
while ($query -> have_posts()) : $query -> the_post();
the_title();
endwhile;
Voir dans la documentation:
'post__not_in' => array( '1,2,3' ) // <--- this wont work