本記事は、サイドバーのカテゴリーリストをツリー表示からボタン表示に変更するカスタマイズの方法を紹介するものです。
カテゴリごとの記事数も同時に表示できます。

他サイトと一味違ったデザインのカテゴリーリストを実装してみたい!という方におすすめです!
ライトテーマ、特に白色が基調のデザインであれば、そのまま使えるCSSを組んでます。
(私が記事執筆当時に使っていたWordPressテーマLuxeritasのデザインにあわせたものです)
完成図
元はこんな感じの味気ないリストです。

よく言えばシンプルなんですけど、味気ないですよね。
そこで、こんな風に変えます。

実装方法
以下に紹介するPHPコードをfunctions.phpに記述。
CSSをstyle.cssに記述。
実装したい場所にショートコード[category_buttons]を記述します([]は半角に変更してください)。
PHP
// カテゴリーボタン一覧ショートコード
// [category_buttons]
function my_category_buttons_shortcode() {
$categories = get_categories(array(
'hide_empty' => false,
'orderby' => 'name',
'order' => 'ASC',
));
if (empty($categories)) {
return '';
}
$html = '<div class="category-button-list widget_categories"><ul>';
foreach ($categories as $cat) {
$url = esc_url(get_category_link($cat->term_id));
$name = esc_html($cat->name);
$count = intval($cat->count);
$html .= '<li>';
$html .= '<a href="' . $url . '">';
$html .= $name;
$html .= '<span class="cat_count">' . $count . '</span>';
$html .= '</a>';
$html .= '</li>';
}
$html .= '</ul></div>';
return $html;
}
add_shortcode('category_buttons', 'my_category_buttons_shortcode');
CSS
/************************************ ** カテゴリー一覧 ************************************/
.category-button-list {
margin: 0 0 1px 0;
padding: 5px 5px;
}
.category-button-list ul {
margin: 0;
padding: 0;
list-style: none;
}
.category-button-list ul li {
display: inline-block;
margin: 0 .5em .5em 0 !important;
padding: 0;
}
.category-button-list ul li a {
position: relative;
display: inline-block;
max-width: 260px;
height: 29px;
line-height: 28px;
padding: 0 4em 0 .6em;
background-color: rgb(251, 251, 251);
border: 1px solid #ccc;
border-radius: 3px;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
color: #333;
font-size: 13px;
text-decoration: none;
transition: .2s;
}
.category-button-list li .cat_count {
position: absolute;
top: 3px;
right: 5px;
z-index: 2;
width: 28px;
height: 21px;
line-height: 18px;
background-color: #fff;
border: 1px solid #ccc;
border-radius: 100%;
color: #333;
text-align: center;
transition: .2s;
}
.category-button-list ul li a:hover {
background-color: #c4fdfd;
border-color: #c4fdfd;
color: #333;
}
.category-button-list ul li a:hover .cat_count {
background-color: #fff;
color: #333;
}
まとめ
利便性だけでみればツリー型の方が一般には優るとは思います。
1行1カテゴリの方が認知負荷を軽減させますので。
ただ大量コンテンツを抱えるサイトですと、逆に情報を集約して把握できるメリットがあります。
タグクラウドと同系統とみなすなら、こうしたデザインにも一理あります。

選択肢の一つとして候補に入れてみてはいかがでしょうか?
私はConoHa以外を勧めない。
2016年からずっとConoHaを使い倒してきました。知人に「一番いいサーバーは?」と聞かれたら、迷わずここを教えます。
レンタルサーバーナンバーワンを誇る高速環境であることはもちろん。私が「黒い画面って何?」というド素人からサイト制作のプロになれたのは、傍らにずっとこのはちゃんがいてくれたから。
私がConoHaを使い続ける、嘘偽りない理由です。
※ConoHaに初めて入会の方限定。
本CTAの画像もしくはボタンを押してWINGパック12か月以上を契約すると、最大5000円割引してもらえます。
