J'essaie de joindre un tableau d'identifiants postaux. Actuellement, il semble que mon code crée un tableau distinct pour chaque ID, au lieu d'un tableau avec chaque ID.
C'est le code que j'ai mis au point. C'est à l'intérieur d'un include dans un fichier taxonomy.php
.
Donc, fondamentalement, j'essaie d'obtenir l'ID de chaque message qui résulterait de l'interrogation du terme de taxonomie donné.
J'ai l'impression qu'il me manque quelque chose de très évident? J'ai essayé de prendre la variable en dehors de la boucle mais elle ne produira que le premier ID de publication.
<?php
if( function_exists( 'wpseo_local_show_map' ) ) {
while (have_posts()) : the_post();
$post_ids = get_the_ID();
var_dump($post_ids);
endwhile;
$params = array(
'id' => $post_ids,
'echo' => true,
'width' => 425,
'height' => 350,
'zoom' => 10,
'show_route' => true
);
wpseo_local_show_map( $params );
}
?>
Le var_dump ressemble à ceci . Est-ce que quelqu'un peut-il me montrer la bonne direction?
Vous écrasez la variable $post_ids
sur chaque boucle while
sans jamais les collecter.
Cela peut être résolu en utilisant
$post_ids = array();
while (have_posts()) : the_post();
$post_ids[] = get_the_ID();
endwhile;
var_dump($post_ids); // this is an array of ids
Cependant, il existe un moyen plus simple, vous pouvez ignorer le cycle complet et simplement exécuter:
if( function_exists( 'wpseo_local_show_map' ) && have_posts() ) {
// this is an array of ids
$post_ids = wp_list_pluck( $GLOBALS['wp_query']->posts, 'ID' );
$params = array(
'id' => $post_ids,
'echo' => true,
'width' => 425,
'height' => 350,
'zoom' => 10,
'show_route' => true
);
wpseo_local_show_map( $params );
}