カスタム投稿で、カスタムタクソノミーを設定して、そのタクソノミーのタームの新着5件ずつ表示するページを作りたかったときに

[php]
<?php
global $post;
#イベント告知の情報を取ってくる
$args = array(
‘post_type’ => ‘event’,//カスタム投稿
‘taxonomy’ => ‘eventinfotype’,//タクソノミー
‘term’ => ‘eventkokuchi’,//タクソノミーのファイル名
‘numberposts’ => 5
);
$kokuchi = get_posts( $args );
?>
<ul>
<?php
if($kokuchi){

foreach($kokuchi as $data):
?>
<li><div class="news-date">開催日:<?php echo date(‘Y年n月j日(D) Ag:i’, post_custom(‘wpcf-startday’)); ?>
<?php if(post_custom(‘wpcf-endday’)){?>~<?php echo date(‘Y年n月j日(D) Ag:i’, post_custom(‘wpcf-endday’)); }?></div>
<div class="news-title"><a href="<?php the_permalink(); ?>"><?php the_title();?></a> <span class="entryday">(情報更新日:<?php the_time(‘Y年m月d日’); ?>)</span></div></li>

<?php endforeach;
}else{
?>
<li>現在予定しているイベントはありません。</li>
<?php
}?>
</ul>
[/php]

というソースを書いていたら、なぜか、同じ記事の繰り返し。

なんでだろう……と思っていたら

foreach($kokuchi as $data):

の$dataは$postでなくてはいけなかったです。

参考記事

WordPress関数:get_postsと$postとsetup_postdata()について

$postだと大本のデータをつぶしてしまうような気がして、かえちゃったんですが、そこには意味があったんだなぁと思いました。

 

ちなみに、タクソノミーごとの記事一覧とかで参考にしたページはこちら

WordPress タクソノミー、ターム、投稿タイプや著者を特定した記事一覧の出力方法(サムネイル出力含む)