ezorisu-web

ウェブサイトのデザインとかお仕事の効率化とか

特定カテゴリーの記事表示とページナビ

WordPressで特定のカテゴリーや日付の記事だけ表示したい時、例えばトップページに「お知らせ」カテゴリーの記事のみ載せる場合などは、記事ループの前でテンプレートタグ「query posts」を使います。

カテゴリーの名前を「お知らせ」、そのカテゴリースラッグを「news」としていた場合。
[sourcecode language=”html”]
<?php query_posts(‘category_name=news’); ?>
[/sourcecode]

これで「お知らせ」カテゴリーのみを集めて表示していたんだけど、そうしたらちょっと困った事態になっていました。
WordPlessでページナビゲーションを表示する」で書いたようにページナビを入れていたら、2ページ以降が表示されない。どのページをクリックしても1ページ目が出てきます。
いつものようにググッてみると、「query_posts」はそのままではページ送りが出来ない仕様らしい。でも、もちろん解決策はあります。

ひとつ目は引数の頭に「$query_string .」を加え、引数を「&」で始める。
[sourcecode language=”html”]
<?php query_posts($query_string . ‘&category_name=news’); ?>
[/sourcecode]

もうひとつは引数の後ろに「&paged=」を付け足して「’」で閉じた後にさらに「.$paged」を加える。
[sourcecode language=”html”]
<?php query_posts(‘category_name=news&paged=’ .$paged); ?>
[/sourcecode]

どちらの方法でもページナビは正常に動作しました。

この「query_posts」は複数のカテゴリーを指定したり、特定のタグを表示したり、記事の表示件数を指定したりといろいろ便利に使えます。

参考サイト