web-dev-qa-db-de.com

Wie kann ich ein Array aller IDs aus dem aktuell abgefragten Objekt erhalten?

Ich versuche, eine Reihe von Post-IDs zusammenzufügen. Momentan scheint mein Code ein separates Array für jede ID zu erstellen, anstatt ein Array mit jeder ID.

Dies ist der Code, den ich mir ausgedacht habe. Es befindet sich in einem Include in einer taxonomy.php-Datei.

Im Grunde genommen versuche ich, die ID jedes Posts zu ermitteln, die sich aus der Abfrage des angegebenen Taxonomiebegriffs ergeben würde.

Ich habe das Gefühl, etwas sehr offensichtliches zu vermissen? Ich habe versucht, die Variable aus der Schleife herauszunehmen, aber sie gibt nur die erste Beitrags-ID aus.

<?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 );
                }

?>

Der var_dump sieht so aus . Kann mich jemand in die richtige Richtung weisen?

1
itrogers

Sie überschreiben $post_ids Variable in jeder while Schleife und sammeln sie niemals.

Das kann mit gelöst werden

$post_ids = array();

while (have_posts()) : the_post();

  $post_ids[] = get_the_ID();

endwhile;

var_dump($post_ids); // this is an array of ids

Es gibt jedoch eine einfachere Möglichkeit, den gesamten Zyklus zu überspringen und einfach auszuführen:

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