wp_list_categoriesでカテゴリーを取得できなかった場合
「カテゴリーなし」(英語版だと「No categories」)と表示されます。
カテゴリーが取れたか、取れていないか?の判定する際には
strposとかで「No categories」が含まれているのか?
などで調べなくてはなりません。
その判定をもっと単純にする方法です!
…実は日本語版wp_list_categoriesページには記述されていない引数パラメータ、
「show_option_none」というのがあり、
そのデフォルト文字が「No categories」となっているんです。
(それが日本語化されて「カテゴリーなし」として表示。)
そのパラメータにnullもしくは”(空文字)を指定してやれば
戻り値に「No categories」が含まれなくなります。
(関数内でshow_option_noneが空文字か?を判定しているので
liタグなども出力されなくなります。)
更に、引数パラメータ「title_li」も”(空文字)にしておけば
本当に戻り値を”(空文字)にすることが出来ます。
よって、パラメータを指定してやることにより
$args = array( 'show_option_none' => '', 'title_li' => '', 'echo' => 0 /* 直接出力させない為 */ /*他に必要なパラメータも各自設定。ここでは省略*/ ); $catlist = wp_list_categories( $args ); if ( !empty($catlist) ) { echo '<ul>'.$catlist.'</ul>'; }
と、いう感じでempty判定をしてやれば、
判定の仕方が断然スッキリする訳です。
ちなみに、このshow_option_noneパラメータは
英語版wp_list_categoriesページの方では記載されていますので、
単純に日本語版の記述漏れだと思われます。
2013年01月26日
リニューアルに伴い文章校正