J'essaie d'afficher une métabox de sélection déroulante sur la page "ajouter un nouveau" d'un type de publication personnalisé. Cette liste affiche une liste déroulante de titres issus d'un type de publication personnalisé distinct (il s'agit d'un effort pour relier les deux CPT, l'un étant "clients "et l'autre étant" projets ", de sorte que lors de la création d'un nouveau projet, il serait nécessaire de sélectionner un client dans la liste déroulante.
Tout fonctionne bien sauf le fait que la requête affecte WordPress car lorsque je clique sur "ajouter un nouveau projet " au lieu d'un champ vide pour le titre, comme vous obtiendrez normalement qu'il est rempli avec le titre du premier CLIENT. J'ai pensé qu'en ajoutant wp_reset_postdata (), cela résoudrait le problème, mais ce ne fut pas le cas. Quelqu'un peut-il aider? (J'ajoute seulement ce que je pense être l'élément de code pertinent/problématique, car le code de la métabox lui-même fonctionne comme prévu dans la mesure où je peux le voir et je suppose que le problème réside dans la façon dont j'ai effectué la requête)
<select name="my_meta_box_select" id="my_meta_box_select">
<?php
$my_loop = new WP_Query( array( 'post_type' => 'clients', 'posts_per_page' => 10 ) );
while ( $my_loop->have_posts() ) : $my_loop->the_post();
$title = get_the_title();
?>
<option value="<?php echo $title ?>" <?php selected( $selected, $title ); ?>><?php echo $title ?></option>
<?php
endwhile;
?>
</select>
<?php
wp_reset_postdata();
}
Ce que je ferais, c’est créer un type de taxonomie personnalisé à partager entre les deux types de publication personnalisés créés dynamiquement lorsqu’une nouvelle publication du type Clients est créée avec le même titre. Vous pouvez ensuite les associer sans méta-gestion personnalisée.
je pense que vous devez remplacer
wp_reset_postdata ();
avec
wp_reset_query ();
au moins cela fonctionne pour moi dans un test rapide