【WordPressで特定のカテゴリのアーカイブページだけ表示を変えたい場合】条件分岐でOK(複数も指定できる)

WordPressのカテゴリのアーカイブページでは、そのカテゴリ内でこれまでどんな事が書かれたのか、一覧化させることができますね。そして、閲覧者にとって気になるであろうと思われるカテゴリは、特に情報を得てもらいやすくするため、ぜひともカスタマイズしておきたいところではあります。

例えばですが、「特定のカテゴリのアーカイブページは、投稿をID順で、昇順で表示したい。」そんな時は、WordPressの条件分岐タグを使えば解決できます。

ところで、カテゴリのアーカイブページとは

私のブログでしたら、例えば「wordpress」カテゴリのアーカイブページのURLは、「https://www.imamura.biz/blog/category/cms/wordpress」となります。

早速やってみましょう

「is_category」という関数を使ってやります。フォーラムの have_posts() ASC and DESC の例を使わせていただくと、

<?php
if( is_category( 'おかし' ) ) {
query_posts( $query_string . "&order=ASC" );
}
?>

と、書きます。これは何をしているかというと、「おかし」カテゴリのアーカイブページを表示している場合は、昇順で表示しています。

複数のカテゴリのアーカイブページを処理したい場合

先ほどのコードを少しだけ変更して、配列として値を入れることで、複数のアーカイブページに対して処理できます。

<?php
if( is_category( array( 'おかし' , '飲み物' ) ) ){
query_posts( $query_string . "&order=ASC" );
}
?>

これは、「おかし」または「飲み物」カテゴリのアーカイブページでは昇順で表示しています。

is_categoryのパラメーターについて

関数リファレンス/is category – WordPress Codex 日本語版を参考にしますと、例えば以下のように

1.カテゴリID「10」

is_category('10')

2.カテゴリ名「おかし」

is_category('おかし')

3.カテゴリのスラッグ「okashi」

is_category('okashi')

以上の3パターンで設定できます。

まとめ

WordPressでは、カテゴリを扱う関数はこのほかにも豊富に揃っていて、習得しておくと、役に立つ場面がたくさんあると思います。

ところで、カテゴリのアーカイブページって、個人的には例えば、ただサイドバーにリンクを設置していても、押すことはほぼないです。ですが、例えば検索エンジンからある記事にたどり着いて、「この方、他にどんな記事を書いてるんだろうな・・・」と思ったりして、個別記事からカテゴリのアーカイブページへ移動することは多いです。

カテゴリーのアーカイブページでは、今や当たり前となっている同じカテゴリ内の「関連記事」や「おすすめ記事」の表示とはまた少し意味合いを変えて表示をしたい。そんな場合には、この「is_category」を使ってあげれば、狙い通りの表示ができる。と思っています。

著者:bouya Imamura