はじめに
WordPressでは、特定のカテゴリーに属する記事一覧を表示することがよくあります。本記事では、カテゴリー別記事一覧を表示するためのコードを紹介します。このコードでは、ページネーションの実装や、カスタム投稿タイプの記事を表示する方法も含まれています。
コードの説明
以下のコードは、特定のカテゴリーに属する記事を表示するためのものです。カテゴリーのスラッグ、カスタム投稿タイプ、表示件数、並び順などを指定することができます。
PHP
<ul class="news">
<?php
$paged = get_query_var('paged') ?: 1; //ページネーションを使いたいなら指定
$args = array(
'paged' => $paged, //ページネーションを使いたいなら指定
'posts_per_page' => 3, //3記事のみ出力
'post_status' => 'publish', //公開の記事だけ
'post_type' => 'カスタム投稿スラッグ', //カスタム投稿スラッグ
'orderby' => 'date', //日付を出力する基準
'order' => 'DESC', //表示する順番(逆はASC)
'category_name' => 'カテゴリースラッグ', //カテゴリースラッグを指定
);
$the_query = new WP_Query($args);
if ($the_query->have_posts()) :
?>
<?php global $previousday; //この表記と$previousday = '';で同じ日付の投稿でも表示される
while ($the_query->have_posts()) : $the_query->the_post();
$previousday = '';
//-------- ここから繰り返し----------
?>
<li class="news__list">
<span>
<?php the_time('Y.m.d'); ?>
</span><a href="<?php the_permalink(); ?>">
<?php the_title(); ?>
</a>
</li>
<?php //-------- 繰り返しここまで-----------
endwhile; ?>
<?php //-------- WP_query終了-----------
wp_reset_postdata();
endif; ?>
</ul>
コードの詳細
ページネーションの設定:
PHP
$paged = get_query_var('paged') ?: 1;
get_query_var('paged')
は現在のページ番号を取得します。これにより、ページネーションが機能します。
WP_Queryの引数設定:
PHP
$args = array(
'paged' => $paged,
'posts_per_page' => 3,
'post_status' => 'publish',
'post_type' => 'カスタム投稿スラッグ',
'orderby' => 'date',
'order' => 'DESC',
'category_name' => 'カテゴリースラッグ',
);
paged
、posts_per_page
、post_status
、post_type
、orderby
、order
、category_name
などの引数を設定します。これにより、特定の条件に基づいて記事を取得します。
WP_Queryの実行とループ:
PHP
$the_query = new WP_Query($args);
if ($the_query->have_posts()) :
while ($the_query->have_posts()) : $the_query->the_post();
// 繰り返し処理
endwhile;
wp_reset_postdata();
endif;
WP_Query
を使って記事を取得し、ループを実行します。ループ内では、the_time
やthe_permalink
、the_title
などの関数を使って記事の情報を表示します。
おわりに
このコードを使うことで、特定のカテゴリーに属する記事一覧を簡単に表示することができます。ページネーションやカスタム投稿タイプにも対応しているため、柔軟な記事表示が可能です。