カスタム投稿タイプの記事一覧を取得、表示するソースコードのメモ。サイドバーで最新記事一覧を表示するときなどの、サブループとして表示する方法です。
カスタム投稿タイプの記事一覧を表示
カスタム投稿タイプの記事一覧を表示したい場所に、以下のソースコードを貼り付けて下さい。
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>