投稿IDの配列をまとめて参加しようとしています。今のところ、私のコードでは、IDごとに1つの配列ではなく、IDごとに別々の配列を作成しているようです。
これが私が思い付いたコードです。 taxonomy.php
ファイル内のインクルードの内側です。
だから基本的に、私は与えられた分類学用語の問い合わせから生じるであろう各投稿のIDを取得しようとしています。
私は非常に明白な何かを逃しているような気がしますか?ループの外側で変数を使用しようとしましたが、最初の投稿IDのみが出力されます。
<?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 );
}
?>
Var_dump は次のようになります 。誰かが私を正しい方向に向けることができますか?
あなたはすべてのwhile
ループで$post_ids
変数を上書きしています。それらを集めてはいけません。
それを使用して解決することができます
$post_ids = array();
while (have_posts()) : the_post();
$post_ids[] = get_the_ID();
endwhile;
var_dump($post_ids); // this is an array of ids
しかしもっと簡単な方法があります、あなたは全体のサイクルをスキップして単に実行することができます:
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 );
}