web-dev-qa-db-fra.com

Comment puis-je obtenir un tableau de tous les ID de l'article interrogé actuel?

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?

1
itrogers

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 );
}
6
gmazzap