【WordPress】setup_postdata()の引数について

上記の関数、現在の投稿情報をグローバル変数へセットするというものですが、渡す引数に注意する必要があります。

何かと言いますと、「$post」で渡さないと上手いこと変数をセットしてくれません。

$post グローバル変数へのリファレンスを指定しなければなりません。そうしないと the_title() などの関数が正しく動作しません。


https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/setup_postdata

先日、下の記事でsetup_postdata($post)を使ったので、そちらのコードを参考にします。

参考にするコードはこちら。

$my_posts = get_posts( $post_args );
    echo '<ul>';
	foreach( $my_posts as $post ){
	     setup_postdata( $post );
	     $output = '<li>' . get_the_title() . '</li>';
	     echo $output;
	}
	wp_reset_postdata();
	echo '</ul>';

get_posts()で投稿情報を取得して、一つ一つ表示するというもの。

注目すべきは3~4行目の「$post」なのですが、これを例えば「$my_post」とかに変えると上手いこと取得されません。

しっかり確認しておかないと、思わぬところで足をすくわれかねません。

以上、自分への再喝でした。