カテゴリー別記事一覧の実装方法

カテゴリー別記事一覧の実装方法
WordPress学習におすすめの書籍

Amazonの読み放題サービスKindle Unlimited無料体験キャンペーン実施中!

Amazon Kindle Unlimited 公式

はじめに

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' => 'カテゴリースラッグ',
);

pagedposts_per_pagepost_statuspost_typeorderbyordercategory_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_timethe_permalinkthe_titleなどの関数を使って記事の情報を表示します。

おわりに

このコードを使うことで、特定のカテゴリーに属する記事一覧を簡単に表示することができます。ページネーションやカスタム投稿タイプにも対応しているため、柔軟な記事表示が可能です。

制作のご相談・ご依頼はこちらから!

Author

WARACRO(ワラクロ)

2018年に起業し、Webデザイナー・WebディレクターとしてWordPress案件を中心にWeb制作のお仕事をしています。
このブログでは、Webサイト制作に関する情報をお届けしています。

Webデザイン学習におすすめの講座
To Top