全てのカテゴリを取得して一覧表示@WordPress
投稿用テンプレートのsingle.phpの下部にカテゴリ一覧を設置する例です。
<?php $args = array( 'orderby' => 'order', 'order' => 'ASC', 'exclude' => '1' // 「未設定」カテゴリを除外 ); $cat_all = get_categories($args); foreach($cat_all as $value): ?> <a href="<?php echo get_category_link($value); /* カテゴリへのリンク */ ?>"><?php echo esc_html($value->name); /* カテゴリ名 */ ?></a> <?php endforeach; ?>
$argsでexcludeを使って「未設定」カテゴリは除外する設定をしています。
WordPressのget_categories()関数を使って存在するカテゴリの情報を取得、配列$cat_allに格納します。
foreach文のループを使って配列$cat_allから$valueで各要素を取得。この$valueの中に値が入っているので
$value->nameのように指定して(この場合はカテゴリ名)出力します。
各カテゴリのトップ(一覧)へのリンクはget_category_link()を使って、オプションに$valueを指定して取得します。
出力する際にはesc_html()を使ってエスケープ処理をしておきます。WordPressのエスケープ用の関数については以下が参考になります。
http://wpdocs.sourceforge.jp/Data_Validation
WordPressではカテゴリは親子(孫)関係を持たせることが出来ますが、この出力では親子関係は関係なく、存在する全てのカテゴリが出力されます。