ウィジェットを使用せずに、カテゴリ一覧を表示させたい場合は
wp_list_categories()
が一番簡単な方法ですが、自動的にリスト形式で書き出されるため、デザインによっては不便なことがあります。MTのように<MTCategories>~</MTCategories>で囲んだ部分をループさせたりする関数があるといいのですが、残念ながらWordPressでは存在しません(プラグインならあるかもしれませんが)
そこで結局はデータベースから取り出してくる必要があります。
しかしわざわざ、$wpdb->get_resultsを使う必要はありません。
今回はget_terms()を利用します。(参考サイト:とりさんのソフト屋さんサイト)
<?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; ?>
get_termsで取得されるフィールドは
- term_id
- name
- slug
- term_group
- term_taxonomy_id
- taxonomy
- description
- count
となっていますので、foreachでループさせて「$value->term_id」という風に取得してください。
なおURLについては、get_terms()では取得できませんので、
get_category_link(カテゴリID)
で取得してください。(カテゴリIDはforeach中に「$value->term_id」で取得できます。)
なお、自分のやり方ではキャッシュが考慮されていませんので、考慮されたい方はこちらのサイトをご参照ください。とりさんのソフト屋さんサイト