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