カテゴリ毎の記事一覧を表示する方法[WordPress]
WordPressでカテゴリ毎の記事一覧を表示するコードを紹介します。プラグインは使用しません。
まえがき
意外と出番が多い「カテゴリ毎の記事一覧」を表示するタグを紹介します。
プラグインとかは使いません。
コード書くだけでいけます。
カテゴリ毎の記事一覧を表示するコード
細かい話はどうでも良いと思うので取りあえずコード載せます。
<?php $categories = get_categories(); foreach($categories as $category) : ?> <div><a href="<?php echo get_category_link( $category->term_id ); ?>"><?php echo $category->cat_name; ?></a></div> <ul> <?php query_posts('cat='.$category->cat_ID); if (have_posts()) : while (have_posts()) : the_post(); ?> <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li> <?php endwhile; endif; ?> </ul> <?php endforeach; ?>
これを表示したいテンプレートに記述すればOKです。
HTMLコードの部分は適宜変更してください。
簡単に説明します。
一行目の「get_categories();」で全カテゴリの情報を取得してそれを「foreach」文で出力しています。
「query_posts(‘cat=’.$category->cat_ID);」でループ中のカテゴリのIDをクエリに設定し、そのカテゴリに属する記事を出力しています。
親カテゴリのみの記事一覧を表示するコード
もし、親カテゴリのみを記事一覧表示対象にしたい場合、こうなります。
<?php $categories = get_categories('parent=0'); foreach($categories as $category) : ?> <div><a href="<?php echo get_category_link( $category->term_id ); ?>"><?php echo $category->cat_name; ?></a></div> <ul> <?php query_posts('cat='.$category->cat_ID); if (have_posts()) : while (have_posts()) : the_post(); ?> <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li> <?php endwhile; endif; ?> </ul> <?php endforeach; ?>
2行目が変わるだけです。
「get_categories」の「parent」引数は、本来特定カテゴリの子カテゴリのみ引っ張る時に使用するのですが、
引数に「parent=0」を指定すると一階層目のカテゴリのみ引っ張ってくるようになります。
覚えておくといざというときに使えるかもしれません。
因みに「カテゴリに画像のカスタムフィールドを追加する方法[WordPress]」で紹介した方法でカテゴリにカスタムフィールドを追加しても基本はこのループでカスタムフィールドの中身も出力できます。
カスタムフィールドを使用する場合は「カテゴリに画像のカスタムフィールドを追加する方法[WordPress]」を参考にしてください。
まとめ
WordPress超初心者の頃、カテゴリ毎の記事一覧を表示したかったのですが挫折してしまったことがあります。笑
KoToRiのレベルが低すぎたのですね。
みんなはそうならないようにこの記事が誰かの役に立てばいいと思います。
Pingback: 全記事一覧をカテゴリー別に表示させる1()
Pingback: 全記事一覧をカテゴリー別に表示させる2()
Pingback: タグとカテゴリで強弱を付けた関連記事を作成する : weblog by web.contempo.jp()
Pingback: カテゴリ別記事一覧 | テンプレート用WP()