php

WordPressでカテゴリ一覧やタグ一覧を取得・表示させる

WordPressでカテゴリ一覧を表示させるには、wp_list_categoriesというテンプレートタグがありますが、出力結果が思い通りにならないことが多いので、get_termsを使って、カテゴリ一覧を表示させる方法です。

カテゴリ一覧を表示させる

get_termsでカテゴリ情報を取得するには、最初の引数にcategoryを指定します。

[php]echo ‘<ul>’;
$terms = get_terms( ‘category’, ‘orderby=count&hide_empty=0’ );
foreach($terms as $value):
echo ‘<li><a href="’.get_category_link($value->term_id).’">’.$value->name.'(‘.$value->count.’)</a></li>’;
endforeach;
echo ‘</ul>’;[/php]

タグ一覧を表示させる

タグ一覧の表示は、上記のカテゴリ一覧を表示させるコードのcategoryの箇所をpost_tagに、get_category_linkget_tag_linkに変更すれば、タグの一覧を表示させることが出来ます。

[php]echo ‘<ul>’;
$terms = get_terms( ‘post_tag’, ‘orderby=count&hide_empty=0’ );
foreach($terms as $value):
echo ‘<li><a href="’.get_tag_link($value->term_id).’">’.$value->name.'(‘.$value->count.’)</a></li>’;
endforeach;
echo ‘</ul>’;[/php]

引数

引数の形式は、orderby=count&hide_empty=0の形式でも、配列形式でもかまいません。

配列形式の場合

[php]$args = array(
‘orderly’ => ‘count’,
‘hide_empty’ => 0
);

$terms = get_terms( ‘post_tag’, $args );
[/php]
関数リファレンス/get terms

関数リファレンス/wp parse args

余談・・・

カテゴリの一覧表示とタグの一覧表示が並んでいるようなサイトを作ったりする場合は、PHPコードが見づらくなるので、以下のようにオリジナル関数を作って、使うことも有ります。

functions.php

[php]function my_get_terms($term,$args){
echo ‘<ul>’;
$term = get_terms( $term, $args );
foreach($term as $value):
if($term == "category"):
$url = get_category_link($value->term_id);
elseif($term == "post_tag"):
$url = get_tag_link($value->term_id);
endif;
echo ‘<li><a href="’.$url.’">’.$value->name.'(‘.$value->count.’)</a></li>’;
endforeach;
echo ‘</ul>’;
}[/php]

出力側.php

[php]my_get_terms(‘category’,’orderby=count&hide_empty=0′);[/php]