wp_list_categoriesのexclude引数が効かないときの解決方法

WordPress 4.4 × wp_list_categories 除外したいカテゴリーが表示されしまう

WordPressのバージョン「4.4」で「wp_list_categories」の引数「exclude」、「exclude_tree」がうまく動かないようです。

症状

「wp_list_categories」で、カテゴリーの一覧に表示させたくないカテゴリーをカンマ区切りで指定しても表示されてしまうという現象です。

問題のあった環境

WordPressのバージョン 4.4
「wp_list_categories」の引数
  • exclude
  • exclude_tree
問題点 カテゴリー一覧に表示させたくないカテゴリーIDを「exclude」や「exclude_tree」に渡しても、除外されず表示されしまう

引数の書き方を変えて解決

WordPress 4.4で「wp_list_categories」を使っている場合には注意が必要です。使い方としては間違っていない記述をしていても、正しく挙動しないことがあるようです。

バグが生じる書き方

「wp_list_categories」の引数を文字列として渡すと、除外されずに表示されてしまいました。

<?php
    // カテゴリー「1」、「3」、「18」を除外 (表示させない)
    wp_list_categories('exclude=1,3,18');
?>

バグが解決した書き方

「wp_list_categories」の引数を文字列ではなく、配列「array」で渡すと除外されました。

<?php
    // カテゴリー「1」、「3」、「18」を除外 (表示させない)
    wp_list_categories(array('exclude' => array(1,3,18)));
?>

まとめ

  • 「wp_list_categories」の引数の渡し方を文字列ではなく配列で渡す