[WordPress]カスタム投稿タイプの記事一覧を取得して表示するソースコード

  • 更新日:
  • 公開日:

カスタム投稿タイプの記事一覧を取得、表示するソースコードのメモ。サイドバーで最新記事一覧を表示するときなどの、サブループとして表示する方法です。

カスタム投稿タイプの記事一覧を表示

カスタム投稿タイプの記事一覧を表示したい場所に、以下のソースコードを貼り付けて下さい。

4行目の「’post_type’」のパラメータ(post-type-nameと書かれている部分)に、表示したいカスタム投稿タイプの名前を入れます。

<ul>
    <?php $args = array(
        'numberposts' => 5,                //表示(取得)する記事の数
        'post_type' => 'post-type-name'    //投稿タイプの指定
    );
    $posts = get_posts( $args );
    if( $posts ) : foreach( $posts as $post ) : setup_postdata( $post ); ?>
        <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    <?php endforeach; ?>
    <?php else : //記事が無い場合 ?>
        <li><p>記事はまだありません。</p></li>
    <?php endif;
    wp_reset_postdata(); //クエリのリセット ?>
</ul>

取得する記事を名前順にソートしたかったり、特定のカテゴリーに属する記事のみ取得したい場合はget_posts()に渡す引数にパラーメタを追加します。

使えるパラメータに関してはこちらのページ『get_posts:WordPress私的マニュアル』が参考になります。

アイキャッチを表示する場合

アイキャッチはループ内でthe_post_thumbnail()で表示出来ます。以下のソースコードでは11行目で表示しています。

2017年03月01日追記:よく使うので、日付と記事作成者の情報を表示するコードも追加しておきました。

9行目で日付の表示、10行目で作成者のブログ上の表示名を出力しています。

日付のフォーマットはこちらのPHP公式ドキュメント、作成者の情報表示用の引数はWordPress 日本語版 CODEXを参考にしてください。

<ul>
    <?php $args = array(
        'numberposts' => 5,                //表示(取得)する記事の数
        'post_type' => 'post-type-name'    //投稿タイプの指定
    );
    $posts = get_posts( $args );
    if( $posts ) : foreach( $posts as $post) : setup_postdata( $post ); ?>
        <li>
            <?php the_date( 'Y年m月d日' ); ?>
            <?php the_author_meta( 'display_name' ); ?>

            <?php if ( has_post_thumbnail() ) : ?>
                <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a>
            <?php endif; ?>

            <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
        </li>
    <?php endforeach; ?>
    <?php else : //記事が無い場合 ?>
        <li><p>記事はまだありません。</p></li>
    <?php endif;
    wp_reset_postdata(); //クエリのリセット ?>
</ul>

書いた人

Symbol Mark

Ryoichi(しつ)

除菌ティッシュを買い込んで使いきれずによく乾かす人。

療養目的で退職し、どうやって生きていくか模索中。最近は勉強目的でLaravelやVue.js弄ったり、趣味で音で遊んでます。

※2019年10月16日現在ブログリニューアル中です。崩れなどが発生していたらすみません。

うぇぶ: @s_ryone