WordPressで記事に付けられたカテゴリと、そのカテゴリにある記事数を自由にレイアウトする方法
PR
記事に指定されているカテゴリを表示することは、当たり前なのですが。そのカテゴリに含まれている記事数を表示したい場合は通常 the_category を使うことが多いのですが、こちらは形式が決まっています。get_the_categoryを使うと情報を取得して、出力するときに、好きなようにレイアウトするためにタグで囲ったり、そのタグにクラスをつけたりすることができます、また記事数の出力もできます。
get_the_categoryを使ってcategoryの表示をレイアウトする
get_the_categoryで取得出来る情報
term_id | カテゴリID |
name | カテゴリ名 |
slug | カテゴリスラッグ名 |
term_group | カテゴリグループ |
term_taxonomy_id | カテゴリタクソノミーID |
taxonomy | タクソノミー名 |
description | カテゴリの説明 |
parent | 親カテゴリ |
count | カテゴリに登録されている記事数 |
filter | |
cat_ID | カテゴリID |
category_count | カテゴリに登録されている記事数 |
category_description | カテゴリの説明 |
cat_name | カテゴリ名 |
category_nicename | カテゴリスラッグ名 |
category_parent | 親カテゴリ |
wikiからの引用ですが一部のものが被っています。理由はわかりませんが 今回はcountを使ってカテゴリに有る記事数を取得します。他にカテゴリ名とカテゴリのIDから、カテゴリへのリンクを作ります。
コード
<div class="single-meta"> <ul> <?php $categories = get_the_category(); $separator = ' '; $output = ''; if($categories){ foreach($categories as $category) { $output .= '<li><a href="'.get_category_link( $category->term_id ).'" title="' . esc_attr( sprintf( __( "View all posts in %s" ), $category->name ) ) . '"><span class="cat-name">'.$category->cat_name.'</span><span class="cat-count">'.$category->count.'</span></a></li>'; } echo trim($output, $separator); } ?> </ul> </div><!-- /.single-meta-->
出力されるHTMLはこのようになります
<div class="single-meta"> <ul> <li><a href="" title=""><span class="cat-name">WEB クリエイティブ</span><span class="cat-count">30</span></a></li> <li><a href="" title=""><span class="cat-name">WEBサービス</span><span class="cat-count">59</span></a></li> <li><a href="" title=""><span class="cat-name">フリーウェア</span><span class="cat-count">33</span></a></li> </ul> </div>
(リンクのURLとタイトルを削除して整えてあります)
あとはCSSでデザインすれば、こんな表示にできたりします
PR
COMMENT