WEBデザイナーの皆さん、サイドバーの構築中に「カテゴリーが増えすぎて表示が縦に長すぎる……!」なんてこと、ありませんか?
デフォルトのままだと子カテゴリーまで全部展開されてしまい、ユーザビリティが低下しがち。
今回は、WordPressのテンプレートタグwp_list_categoriesを使って、**「親カテゴリーだけ」をスマートに一覧表示する方法**を解説します。
複雑な条件分岐を書かなくても、引数をひとつ追加するだけで解決可能です。
親カテゴリーのみ出力するコード
結論から言うと、depth パラメータを「1」に指定してください。以下のコードを、sidebar.phpなど表示させたい場所にコピペするだけでOK。
|
1 2 3 4 5 6 7 8 |
<ul> <?php wp_list_categories( array( 'title_li' => '', // デフォルトの見出しを非表示 'depth' => 1 // ここが重要!1階層目(親)のみ表示 ) ); ?> </ul> |
従来の文字列で指定する方法(’title_li=&depth=1’)も動きますが、2025年のモダンなコーディング規約に合わせるなら、後からパラメータを追加しやすい配列形式がベターでしょう。
なぜ depth=1 なのか?パラメータの仕組み
wp_list_categories は、その名の通りカテゴリーリストを出力する関数ですが、depth という引数で「階層の深さ」を制御できる仕様になっています。これを「盆栽の剪定」のようにイメージしてください。
どこまで枝を残すか、この数字ひとつでコントロールできるのです。
depthパラメータの設定値一覧
| 値 | 挙動 | 用途 |
|---|---|---|
| 0 | 全ての親子カテゴリーを表示(初期値) | サイトマップなど全量表示したい時 |
| 1 | 最上位(親)カテゴリーのみ表示 | サイドバーをスッキリさせたい時 |
| 2 | 親と子カテゴリーまで表示(孫は非表示) | 中規模なECサイトなどで有効 |
| -1 | 全階層をフラット(インデントなし)で表示 | ドロップダウンメニュー作成時など |
注意点:マークアップへの影響
depth=1 を指定した場合、子カテゴリー(ul.children)の出力がソースコード上から完全に消えます。CSSで「見えなくしている」のではなく、HTMLとして「生成されない」ため、SEO(クローラーの回遊)やページの読み込み速度の観点からも非常に健全です。
【まとめ】階層コントロールでUX向上を!
wp_list_categories に depth=1 を追加する。たったこれだけの作業ですが、ユーザーが迷わずに目的のカテゴリーへ辿り着けるようになり、サイトの回遊率は確実に上がります。
特にスマホ表示でのドロワーメニュー内など、スペースが限られる場所では必須のテクニックと言えるでしょう。


コメント