雨過天晴

カテゴリーごとに、カテゴリータイトルと記事一覧を表示

2017.10.18

WordPress備忘録

img from: フリー素材ぱくたそ

この記事は2017年10月18日に書かれたものです。古い内容や非推奨要素を含む可能性がありますのでご注意ください。

カテゴリー別に記事タイトルの一覧を出します。カテゴリー名は定義リスト、記事タイトル一覧はリストです。

出力結果はこんな感じ。

<dl>
 <dt>カテゴリー名 1</dt>
 <dd>
   <ul>
     <li><a href="">タイトル 1</a></li>
     <li><a href="">タイトル 2</li>
   </ul>
 <dd>
 <dt>カテゴリー名 2</dt>
 <dd>
   <ul>
     <li><a href="">タイトル 3</a></li>
     <li><a href="">タイトル 4</a></li>
   </ul>
 <dd>
(以下dtとdd内のulを繰り返し)
</dl>

ええと、過去記事(同人小説サイト作成時のタグとコードのメモ2014)ではquery_postsでやってます。

今回ちょっとフッターにサイトマップっぽく、いくつかのカラムに分けて出す必要があり、まあquery_postsも非推奨になったし、同じページに何個も連発するのなんかどうなのという気になったのでget_postsで再挑戦。

(下記は表示させたいカテゴリーIDが9、10、16の場合)

<dl>
<?php $categories = get_categories('orderby=slug&include=9,10,16'); ?>
<?php foreach($categories as $category): ?>
  <dt><?php echo $category -> cat_name; ?></dt>
  <dd>
    <ul>
    <?php $args = array('posts_per_page'=>-1,
                        'category'=>$category -> cat_ID); 
          $posts=get_posts($args);
          foreach($posts as $post):setup_postdata($post); ?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    <?php endforeach; 
      wp_reset_postdata(); ?>
    </ul>
  </dd>
  <?php endforeach; ?>
  </dl>