WordPressでwp_list_categories関数を使ってカテゴリーメニューを作成する

PHP WordPress

WordPressテーマ作成時にカテゴリーをさくっと作成することが出来るwp_list_categories関数というものがあります。今回はその使用方法について学んでいきましょう。

基本的な使用法

カテゴリを取得したい場所で以下の関数を実行するのみです。

wp_list_categories();

これだけでカテゴリーメニューを作成することが出来ました。とても便利ですね。しかしこれだけでは少し足りないこともあります。次からこのブログで利用しているカスタマイズを見てみましょう。

カスタマイズする

タイトルを消す

デフォルトではCategories(日本語版のWordPressをインストール済みであればカテゴリー)というタイトルが出ています。これは消してテーマ内で設定したかったのでまずはタイトルを消します。

<section id="widget-categories" class="widget-categories">
  <h3><i class="glyphicon glyphicon-folder-open"></i>CATEGORIES</h3>
  <ul>
  <?php
  wp_list_categories('title_li=');
  ?>
  </ul>
</section>

子カテゴリーまで表示する

カテゴリーに対して親子関係を設定していますが、あまり深いカテゴリーまでは対応したくない(カテゴリーがそこまで深くなるとおそらくカテゴリー設計が間違ってると思われる)ので、2階層までのカテゴリーまでしか表示しないようにします。

<section id="widget-categories" class="widget-categories">
  <h3><i class="glyphicon glyphicon-folder-open"></i>CATEGORIES</h3>
  <ul>
  <?php
  wp_list_categories('title_li=&depth=2');
  ?>
  </ul>
</section>

2つ以上のオプションを設定するときは&でつなげます。URLのパラメーターをつなげていくような感覚ですね。

総合投稿数を表示する

最後にタグの横に投稿数を表示しようと思います。

<section id="widget-categories" class="widget-categories">
  <h3><i class="glyphicon glyphicon-folder-open"></i>CATEGORIES</h3>
  <ul>
  <?php
  wp_list_categories('title_li=&depth=2&show_count=1');
  ?>
  </ul>
</section>

特定のカテゴリーを除去

特定のカテゴリーのみ削除したいというときもあるかと思います。そのようなときはまずWordPress管理画面にいき、「投稿」→「カテゴリー」ページにいきます。

除去したいカテゴリーにカーソルをホバーするとURLが表示されます。その中の「tag_ID=?」と?の部分に数字が書いてあります。それが今回必要なIDです。

その数値を以下のようにオプションで指定します。

<section id="widget-categories" class="widget-categories">
  <h3><i class="glyphicon glyphicon-folder-open"></i>CATEGORIES</h3>
  <ul>
  <?php
  wp_list_categories('title_li=&depth=2&show_count=1&exclude=10');
  ?>
  </ul>
</section>

もし除去したいカテゴリーが複数ある場合はカンマ区切りでつなげて指定します。

<section id="widget-categories" class="widget-categories">
  <h3><i class="glyphicon glyphicon-folder-open"></i>CATEGORIES</h3>
  <ul>
  <?php
  wp_list_categories('title_li=&depth=2&show_count=1&exclude=10,11,12');
  ?>
  </ul>
</section>

これでメニューが出力されました。あとはCSS等で整えてあげれば完璧です!

参考リンク

その他にも様々なオプションがあります。一度目を通してみると、もしかすると簡単に設定出来る可能性があります。以下の公式ドキュメントをご覧ください。