簡易カテゴリー一覧を自動生成(HTML版)する方法
WordPressサイトで、易カテゴリーサイトマップを親子階層付きで一覧表示したい場合、PHPの関数とショートコードを使うと便利です。ここでは「親カテゴリーは太字」「子カテゴリーはインデント付きで表示」「投稿数も表示」する例を紹介します。
1 function.phpにコードを追加(カテゴリーリンク一覧を作成)
//-----------------------------------
// カテゴリーリンク一覧を出力する関数
//-----------------------------------
function show_category_links_list() {
echo '<ul class="category-link-list">';
wp_list_categories(array(
'orderby' => 'name',
'order' => 'ASC',
'show_count' => true,
'title_li' => '',
'hide_empty' => false,
'hierarchical' => true,
));
echo '</ul>';
}
// ショートコードで表示させる
function category_links_shortcode() {
ob_start();
show_category_links_list();
return ob_get_clean();
}
add_shortcode('category_links', 'category_links_shortcode');
1.1 ポイント
上記コードをテーマの functions.php に追加すると、ショートコード [category_links] でカテゴリー一覧を表示できます。
記事内で表示する場合:
[category_links]
2 汎用CSS
/* -----------------------------
* カテゴリーリンク一覧の親ul
----------------------------- */
/* 親<ul>全体の設定。リストマークを消して余白をリセット */
.category-link-list {
list-style: none; /* デフォルトのリストマークを消す */
margin: 0; /* 外側の余白をなしに */
padding: 0; /* 内側の余白をなしに */
}
/* 各<li>要素の基本スタイル(間隔と行間を調整) */
.category-link-list li {
margin: 0.3em 0; /* 上下に少し余白を取る */
line-height: 1.5; /* 行間を1.5倍にして読みやすく */
}
/* 各リンク(aタグ)の基本スタイル */
.category-link-list a {
text-decoration: none; /* 下線を消す */
color: #0073aa; /* 通常時の文字色(WordPress管理画面の青に近い) */
transition: color 0.3s; /* ホバー時の色変化を滑らかに */
}
/* ホバー時のリンクの見た目(色と下線追加) */
.category-link-list a:hover {
color: #00aaff; /* 明るい青色に変更 */
text-decoration: underline; /* 下線を表示 */
}
/* 子<ul>(階層)の設定 */
.category-link-list ul {
margin-left: 20px; /* 親より20px右にインデント */
list-style: disc; /* 子階層では丸いリストマークを表示 */
}
/* 親カテゴリーのみ太字に */
.category-link-list > li {
font-weight: bold; /* 親カテゴリを目立たせる */
}
/* 子カテゴリーは通常の太さに戻す */
.category-link-list > li ul li {
font-weight: normal;
}
/* 孫階層以下の<li>は通常の太さに戻す */
.category-link-list > li ul li ul li {
font-weight: normal; /* 深い階層は太字解除 */
}
/* 投稿数(span.count)の見た目 */
.category-link-list li a span.count {
color: #666; /* 投稿数の色をグレーに */
font-size: 0.9em; /* 少し小さめの文字サイズ */
margin-left: 4px; /* カテゴリ名との間に少し余白を取る */
}
3 完成イメージ
記事内に以下のショートコードを貼り付けるとカテゴリー一覧が表示されます:
4 まとめ
- カテゴリーリンク一覧が親子階層付きで、投稿数付きで表示されます。
- ブログ記事内でもショートコードで簡単に呼び出せます。


