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」を使ってあげれば、狙い通りの表示ができる。と思っています。
ありがとうございます。参考にさせていただきました。
が、
をそのまま使うとシンタックスエラーになりました。
検証したところ、
if( is_category( 'おかし' ) {
のところに「)」の閉じ忘れがあったようです。
正しくは、
ですね。
いずれにせよ助かりました。
ありがとうございます!
2013/01/16 14:18:41
ツイート
シェア
どうも、ご参考いただきましてありがとうございます^^
ご指摘いただいた箇所、早速修正いたしました。
今まで気づきませんで・・・こちらこそ助かりました!
2013/01/16 18:44:33
ツイート
シェア