Wordpressでカスタム投稿タイプの新着記事一覧をターム付きで表示する方法
- 投稿日:2018/09/07
 - Wordpress
 - カスタム投稿タイプ, カスタムタクソノミー, フロントページ
 
Wordpressのフロントページなどにカスタム投稿タイプの新着記事一覧を表示する時、記事に登録されているカスタムタクソノミーのタームを表示できると便利ですよね。
カスタム投稿タイプの記事一覧を日時・ターム・タイトルで表示する方法は下記の通りです。
カスタム投稿タイプをquery_postで取得する方法
<h3>カスタム投稿タイプ新着記事(5件)</h3>
<ul>
    <?php query_posts("post_type=●●●●&posts_per_page=5");//カスタム投稿タイプ名 ?>
    <?php if(have_posts()): ?>
    <?php while(have_posts()): the_post(); ?>
    <li>
        <span class="date"><?php the_time('Y/m/d') ?></span>
        <?php $terms = wp_get_object_terms($post->ID, '●●●●');//カスタムタクソノミーのスラッグ
            if ($terms) {
            foreach ($terms as $term) {
                echo '<span class="'.$term->slug.'">'.$term->name.'</span>' ;}
            };
        ?>
        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    </li>
    <?php endwhile; ?>
</ul>
<?php endif; wp_reset_query(); ?>
 query_posts("post_type=●●●●&posts_per_page=5);//カスタム投稿タイプ名の部分でカスタム投稿タイプの新着記事を5件取得しています。
記事に登録されているタームはwp_get_object_terms($post->ID, '●●●●');//カスタムタクソノミーのスラッグで取得できます。
カスタム投稿タイプをget_postで取得する方法
<?php $list = get_posts(array('posts_per_page' => 5, 'post_type' => '●●●●',));?> //カスタム投稿タイプのスラッグを指定
<?php if(!empty($ints)) :?>
<div class="list">
<?php foreach ( $list as $post ) :
    setup_postdata( $post );
    $id = $post->ID;
?>
    <div class="item">
        <a href="<?php the_permalink();?>">
        <?php
            $terms = wp_get_object_terms($id, '●●●●'); //カスタムタクソノミーのスラッグ
            if ($terms) {
            foreach ($terms as $term) {
                echo '<span class="'.$term->slug.'">'.$term->name.'</span>' ;}
        };?>
            <h4><?php the_title();?></h4>
        </a>
    </div>
<?php endforeach; wp_reset_postdata(); ?>
</div>
<?php endif;?>
 get_posts(array('posts_per_page' => 5, 'post_type' => '●●●●',));?> //カスタム投稿タイプのスラッグを指定の部分でカスタム投稿タイプの新着記事を5件取得しています。
記事に登録されているタームはwp_get_object_terms($post->ID, '●●●●');//カスタムタクソノミーのスラッグで取得できます。
取得した記事に登録されているタームの情報を表示する方法
上記2つの例ではスラッグと名前を取得して表示しましたが、他に表示できるタームの情報は下記のとおりです。
$term->term_id; // タームID $term->name; // 名前 $term->slug; // スラッグ $term->term_group; // タームグループ $term->term_order; // タームオブジェクト $term->term_taxonomy_id; // タームタクソノミーID $term->taxonomy; // タクソノミー $term->description; // ディスクリプション $term->parent; // 親ID $term->count; // カウント $term->object_id; // オブジェクトID
カスタムタクソノミーをカスタム投稿タイプのカテゴリーとして利用している場合などにご活用ください。
この記事が気に入ったらシェアしてください