[WordPress]親カテゴリーのみ表示したい!wp_list_categoriesのdepth活用術

WordPress
スポンサーリンク

WEBデザイナーの皆さん、サイドバーの構築中に「カテゴリーが増えすぎて表示が縦に長すぎる……!」なんてこと、ありませんか?

デフォルトのままだと子カテゴリーまで全部展開されてしまい、ユーザビリティが低下しがち。
今回は、WordPressのテンプレートタグwp_list_categoriesを使って、**「親カテゴリーだけ」をスマートに一覧表示する方法**を解説します。

複雑な条件分岐を書かなくても、引数をひとつ追加するだけで解決可能です。

親カテゴリーのみ出力するコード

結論から言うと、depth パラメータを「1」に指定してください。
以下のコードを、sidebar.phpなど表示させたい場所にコピペするだけでOK。


従来の文字列で指定する方法(’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 を追加する。

たったこれだけの作業ですが、ユーザーが迷わずに目的のカテゴリーへ辿り着けるようになり、サイトの回遊率は確実に上がります。

特にスマホ表示でのドロワーメニュー内など、スペースが限られる場所では必須のテクニックと言えるでしょう。

コメント

タイトルとURLをコピーしました