記事一覧リストに特定のカテゴリーを表示させる 又は 表示させない方法【WordPress】
WordPressのトップページや固定ページでは、これまでに投稿した記事一覧を表示させるループさせる処理が施されています。
この処理において
「特定のカテゴリー(複数もOK)の記事のみ表示させる」
もしくは
「特定のカテゴリー(複数もOK)の記事のみ表示させない」
という条件処理が可能ですので、紹介致します。
目次
記事一覧表示処理でカテゴリーを指定する部分
WordPressサイトのトップページの表示を担うテンプレート"index.php" や、固定ページの表示を担う"page.php" を見ると、下記のようなコードが確認できると思います。
<?php while(have_posts()) : the_post(); ?>
…
<?php endwhile; ?>
場合によっては
<?php if(have_posts()) : ?>
<?php while(have_posts()) : the_post(); ?>
…
<?php endwhile; ?>
<?php endif; ?>
と、やや冗長やコーディングがされている場合もあります。
いずれにせよ、この部分で過去に投稿した記事一覧が表示されます。
この直前に、以下に説明するquery_posts()処理入れる事で、任意のカテゴリーのみを表示させたり、任意のカテゴリー以外を表示させたりする事が可能となります。
query_posts() でカテゴリーを指定
特定のカテゴリー記事のみを表示させる場合
例えばカテゴリーIDが3の記事のみを表示させる場合は、下記のように追記すればOKです。
<?php $paged = get_query_var('paged'); ?>
<?php query_posts('cat=3&paged=$paged'); ?>
<?php if(have_posts()) : ?>
<?php while(have_posts()) : the_post(); ?>
…
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_query(); ?>
query_posts() を使用して、カテゴリーID「3」の記事のみにループ条件を変更しているのです。
処理が完了後はループ条件を初期設定に戻すために、必ずwp_reset_query()を記述します。
複数のカテゴリー記事を表示させる場合
カテゴリーIDが、「3」「5」「7」の記事を表示させる場合は、下記のようにカンマで区切ってコーディングします。
<?php query_posts('cat=3,5,7&paged=$paged'); ?>
カンマの後に半角スペースを入れても大丈夫です。
そちらの方が見やすいかもしれません。
特定のカテゴリー記事を表示させない場合
逆に特定のカテゴリーの記事を表示させない場合は、マイナスを付与すればOKです。
カテゴリーIDが3の記事を除外する場合は
<?php query_posts('cat=-3&paged=$paged'); ?>
この場合も、次のように複数指定する事ができます。
<?php query_posts('cat=-3, -5, -7&paged=$paged'); ?>
1ページ当たりの表示記事数を指定
posts_per_page=~
をquery_posts()の引数文字列に加える事によって、1ページ当たりの表示記事数を指定する事ができます。
<?php query_posts('cat=3&posts_per_page=10&paged=$paged'); ?>
とした場合は、1ページ当たり10記事分が表示される事になり、それ以降はページ送り処理が施されるのです。
最近のコメント