多くのブログサイトでサイドバーにカテゴリーやアーカイブリスト(日付別一覧)を表示させているのを見かけますよね。私のブログもそうです。
カテゴリーやアーカイブリストは訪問者にとってはこのブログがどのような趣旨なのか、また最近の更新状況を知る上でも大切ですし、運営者からするとサイト内により長い時間滞在してもらう意味でも非常に重要なパーツです。
今回はそんなカテゴリーとアーカイブリスト一覧の表示方法に加え、投稿数を表示させる方法を数パターン紹介します。
ウィジェットを使う場合
ウィジェットでカテゴリーとアーカイブリスト一覧を表示させるには、表示させたいウィジェットエリアにカテゴリーとアーカイブのウィジェットを追加して出力関数を記述するだけです。
また、投稿数を表示させるかどうかはウィジェットの設定から出来ます。
ウィジェットを使ったリスト一覧の表示、投稿数の表示方法はこちらの記事に詳しく書いてありますのでご覧ください。
出力関数やウィジェットエリアの追加方法についてはこちらの記事をご覧ください。
ウィジェットを使ってカテゴリーとアーカイブリスト一覧を表示される方法はそこまで難しくないのでプログラミングに詳しくない初心者の方にオススメです。
テンプレートタグの場合
テンプレートタグとはWordpressに対して、あるデータを取得・出力させるためのPHPの関数のことです。
例えばヘッダーを読み込む(出力させる)場合、<?php get_header(); ?>という関数をPHPファイルに記述しますよね。これもテンプレートタグのひとつです。
では本題に戻ります。リンク付きカテゴリーリスト一覧を出力するには以下のタグを使います。
<?php wp_list_categories(); ?>
同様にリンク付きアーカイブリスト一覧を出力するには以下のタグを使います。
<?php wp_get_archives(); ?>
このタグを使って投稿数を表示させるにはパラメータを追記します。
カテゴリーリストの場合
<?php wp_list_categories('show_count=1'); ?>
show_countは投稿数を表示させるかどうかのパラメータで「1(true) 」で表示、「0 (false)」で非表示に出来ます。その他にもパラメータを指定することで表示方法を変更できます。
- order=カテゴリーのソート順(並び順)の指定。ASCで昇順、DESCで降順。
- hide_empty=投稿のないカテゴリーも表示させるかどうか。1 (true) で非表示、0 (false)で表示。
- exclude=指定したカテゴリーを表示させないようにする。カテゴリーID で指定。
出力されるHTMLは以下のようになります。
<li class="categories">カテゴリー
<ul>
<li><a href="カテゴリー別一覧ページへのURL">カテゴリー名</a>(投稿数)</li>
<li><a href="カテゴリー別一覧ページへのURL">カテゴリー名</a>(投稿数)</li>
<li><a href="カテゴリー別一覧ページへのURL">カテゴリー名</a>(投稿数)</li>
</ul>
</li>
アーカイブーリストの場合
<?php wp_get_archives('show_post_count=1'); ?>
show_post_countは投稿数を表示させるかどうかのパラメータで「1(true) 」で表示、「0 (false)」で非表示に出来ます。その他にもパラメータを指定することで表示方法を変更できます。
- type=表示するアーカイブリストの種類。yearlyで年別、dailyで日別など。
- post_type=投稿タイプの指定。
出力されるHTMLは以下のようになります。
<li><a href="月別アーカイブ一覧ページへのURL">〇〇年〇月</a>&nbsp;(投稿数)</li>
<li><a href="月別アーカイブ一覧ページへのURL">〇〇年〇月</a>&nbsp;(投稿数)</li>
<li><a href="月別アーカイブ一覧ページへのURL">〇〇年〇月</a>&nbsp;(投稿数)</li>
get_categories()関数を使う場合
get_categories()はカテゴリー情報を取得する関数です。この関数を使うことでリンク付きのカテゴリーリスト一覧を表示させることが出来ます。
<ul>
<?php
$categories = get_categories();
foreach($categories as $category) {
echo '<li><a href="'.get_category_link($category->term_id).'">'.$category->name.'</a>('.$category->count.') </li>';
}
?>
</ul>
get_categories()とforeach文で全てのカテゴリーリストを取得するようにループさせます。
リストは<li><a>タグで囲みechoで出力します。
- get_category_link($category->term_id)=カテゴリー別一覧ページへのURLを取得。
- $category->name=カテゴリー名を取得。
- $category->count=投稿数を取得。
出力されるHTMLは以下のようになります。
<ul>
<li><a href="カテゴリー別一覧ページへのURL">カテゴリー名</a>(投稿数)</li>
<li><a href="カテゴリー別一覧ページへのURL">カテゴリー名</a>(投稿数)</li>
<li><a href="カテゴリー別一覧ページへのURL">カテゴリー名</a>(投稿数)</li>
</ul>
まとめ
リンク付きカテゴリーリスト一覧の表示方法
- カテゴリーウィジェット
- テンプレートタグ(wp_list_categories())
- get_categories()関数
- etc
リンク付きアーカイブリスト一覧の表示方法
- アーカイブウィジェット
- テンプレートタグ(wp_get_archives())
- etc
投稿数の表示法
- ウィジェットの場合は設定から表示可能。
- テンプレートタグの場合はパラメータを記述。
以上がリンク付きカテゴリー・アーカイブリスト一覧と投稿数を表示させる方法でした。
表示方法はWebサイトの種類やリストの装飾(カスタマイズ)などによって使い分けが必要になると思います。
何にせよ引き出しが多いほど様々なご要望に対応できるので知っておいて損はないですね。
参考にさせて頂いたサイト
https://recooord.org/wordpress-archives-month/
https://www.nxworld.net/wp-list-categories-count-inside-link.html