WordPressでカテゴリ一覧を取得する方法!デザインしやすい形で出力する記述
ゴールデンウィーク前半は実家でモリモリとブログの裏周りを修正していたg.O.R.i(@planetofgori)デス!
主な作業としてはこれまであったカテゴリをさらに細分化して各記事を分類していた。新たに今回追加したカテゴリを含めて現在のカテゴリ数は以下の通り!
Amazon / Android / Androidアプリ / Apple / Facebook / Google / iMac / iOS / iPad / iPadアクセサリー / iPadアプリ / iPhone / iPhoneアクセサリー / iPhoneアプリ / IT / Jailbreak(脱獄) / LINE / Mac / Mac mini / Mac OS X / Mac Pro / MacBook Air / MacBook Pro / Macアクセサリー / Macアプリ / Microsoft / Samsung / Twitter / Windows / WordPress / おもしろネタ / アカペラ / アプリ / ウェブ / カメラ / ガジェット / グルメ情報 / セール情報 / デザイン / ニュース・時事ネタ / ブログ運営 / ミュージック / モバイル / 健康 / 商品レビュー / 教育 / 渋谷グルメ情報 / 英語 / 雑記 / 音楽アクセサリー
これらを現在フッターに表示しているのだが、すべてのカテゴリをいちいちベタ書きで書き出すのは面倒だ。WordPressでカテゴリ一覧を取得する方法を調べたので、紹介する!
WordPressですべてのカテゴリを取得する記述
もっとも簡単な方法としては以下が有名のようだ。
wp_list_categories()
ただし、この記述だと自動的にリストとして書き出されてしまうため、デザインで使う上では不便になることも少なくない。
そこで、見つけたのが下記コード。これを貼り付けるだけですべてのカテゴリを取得してくれる!
<?php $cat_all = get_terms( "category", "fields=all&get=all" ); foreach($cat_all as $value): ?> <p><a href="<?php echo get_category_link($value->term_id); ?>"><?php echo $value->name;?></a></p> <?php endforeach; ?>
あとは好みのデザインに合わせてCSSを変更するだけ!非常に便利なコードだ!
ただ、欠点としては良くも悪くもすべてのカテゴリを取得してしまうこと。特定のカテゴリを除外する方法がよく分からずにいるので、もし分かる人がいたら是非とも教えて頂きたい!
(via ダリの雑記:WEBプログラム版)
あるいは第二引数(”fields=all&get=all” )の部分を配列で指定し、そのうえでexcludeを指定してもいいと思います。
http://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_terms
配列での指定のほうが見やすいと思うのですが、どうなんでしょうね。
「&exclude=1」のようにカテゴリID指定するとカテゴリの除外ができますよ。
例:get_terms( “category”, “fields=all&get=all&exclude=1” );
https://gist.github.com/a2ikm/5500239
こんな感じのif文で動かないかねー。