・カスタム投稿タイプの一覧ページを表示するには?
こんな疑問にお答えします。
WordPressのテーマ作成時、実績やお知らせなどのカスタム投稿タイプを作成することがあるはず。
その投稿全てを一覧で表示したい場合ありますよね。
実はあるコードを使えば、簡単に表示可能です。
すぐにできるよ!
ということで、この記事では「カスタム投稿タイプの一覧ページ表示コード」について解説していきます!
カスタム投稿タイプの一覧ページ表示コード
目次
【簡単】カスタム投稿タイプの一覧ページ表示コード【WordPress】
カスタム投稿タイプの一覧ページを表示するために、下記を紹介しますね。
- ファイル名
- ループ処理をする
- アクセスするURL名
順に見ていきましょう!
まずファイル名。
カスタム投稿タイプを表示するファイルとしては下記になります。
- archive-[slug].php
- archive.php
他にもありますが、特定のカスタム投稿タイプに対してファイルを分けたい場合は、スラッグを用いります。
今回は例として実績一覧ページを作るとしますね。
workというスラッグ名でカスタム投稿タイプを作成。
すると「archive-work.php」というファイルを用いります。
次にループ処理を使って、実際に記事を表示していきます。
記事数が違う場合やページネーションを使うなどは、案件ごとにカスタマイズしてくださいね。
function change_posts_per_page($query) {
if ( is_admin() || ! $query->is_main_query() )
return;
if ( $query->is_post_type_archive('work') ) {
$query->set( 'posts_per_page', '-1' );
return;
}
}
add_action( 'pre_get_posts', 'change_posts_per_page' );
<?php if ( have_posts() ) : ?>
<?php while(have_posts()): the_post(); ?>
<!-- 処理内容 -->
<?php endwhile; ?>
<?php endif; ?>
functions.phpにてアクションフックを使用して、ループ処理します。
is_post_type_archive(‘work’)部分に、カスタム投稿タイプのスラッグを記述。
メイルループを使う理由などの詳細は下記に↓
【簡単】カスタム投稿タイプ別にアーカイブ表示件数を指定【WordPress】<?php
$args = array(
'post_type' => 'work',
'posts_per_page' => -1,
);
$the_query = new WP_Query($args);
?>
<?php if ($the_query->have_posts()): ?>
<?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
<!-- 処理内容 -->
<?php endwhile; ?>
<?php endif; wp_reset_postdata(); ?>
‘post_type’ => の部分に、カスタム投稿タイプのスラッグを記述します。
これで実績というカスタム投稿タイプの記事が表示されることになりました。
ちなみに表示件数を-1にすることで全部の記事を表示することができますよ。
【解決】WordPressのWP_queryで全部の記事取得する方法あとはカスタム投稿タイプの一覧ページにアクセスすればOK。
アクセスするURLは下記になります。
https://example.com/カスタム投稿タイプのスラッグ名
今回の例としてはこちら↓
https://example.com/work/
これでカスタム投稿タイプの一覧ページにアクセスでき、表示することができました!
CPT ULを使ってカスタム投稿タイプを作成した場合、設定が必要です。
「アーカイブあり」という項目をTrueにしておきましょう。
これをすることで、アーカイブページが表示されます。
functions.phpを使ってカスタム投稿タイプを作成した場合も、設定が必要です。
has_archiveをtrueにしていおきましょう。
'has_archive' => true,
これをすることで、アーカイブページが表示されます。
【簡単】カスタム投稿タイプの一覧ページ表示コード【WordPress】:まとめ
- archive-[slug].php
- ‘post_type’ => の部分に、カスタム投稿タイプのスラッグを記述
- https://example.com/カスタム投稿タイプのスラッグ名
カスタム投稿タイプの一覧ページを表示する際は覚えておこう!