スポンサーリンク

wp_list_categoriesで「カテゴリーなし」を非表示にする

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日
リニューアルに伴い文章校正

[`evernote` not found]