カスタム投稿で、カスタムタクソノミーを設定して、そのタクソノミーのタームの新着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だと大本のデータをつぶしてしまうような気がして、かえちゃったんですが、そこには意味があったんだなぁと思いました。
ちなみに、タクソノミーごとの記事一覧とかで参考にしたページはこちら
コメントを残す