久しぶりに余裕ができて、ブログを少し修正した。
WordPressのループで特定のカテゴリの記事だけを表示する方法は、次のコードを使用すると、されている:
<?php query_posts('cat=1'); ?>
cat = 1は、そのカテゴリーのIDが位置する。 文の数を制限するには、次のようなコードを使用することができる。 (カテゴリIDを確認するには、 この記事を参考にしてみてください。)
<?php query_posts("showposts=5&cat=1"); ?>
ところが、上記のようなコードを使用すると、そのカテゴリの記事だけを表示されますが、いくつかの問題が発生した。 例えば文章が多く、複数のページに表示する場合は、最初のページでは、うまく動作しますが、他のページを選択すると、最初のページのみ表示される。 つまり、最近の記事だけ最初のページに表示され、以前の記事は見ることができないという問題が発生する(ページナビゲーションの問題)。
特定のカテゴリの記事を除外するには、ID番号に マイナス( - )記号を付けるとなる。
<?php query_posts('cat=-1'); ?>
若干の問題があるが、上記のコードは、多くの場合に便利に使うことができる。
もし上記のような問題がないようにするには、次のようなコードの使用も考慮してみることができる。
<?php $top_query = new WP_Query('cat=1'); ?> <?php while($top_query->have_posts()) : $top_query->the_post(); ?>
そして、特定のカテゴリの記事を除外するコードでは、次のようなコードでも使用することができる。
query_posts($query_string . '&cat=-1' );
このコードの場合、ページナビゲーションの問題は発生しませんが、作り付けの記事(Sticky Post)が表示されない。
추가
上記の方法は、 WordPress テーマソースを直接編集します。 やや面倒な作業になり、後でメンテナンスも難しい場合があります。 別の方法でpre_get_postsアクションを使用する方法があります。 詳しくは「ホームページに1つのカテゴリのみ表示されるように"文を参照してください。
コメントを残す