wordpressで記事ページを作るとき、ないしトップページの時点でかなりの可能性で必要とされることでしょう。「記事のカテゴリ」を表示すること。
僕がよく使うものをメモします。
the_category()
リンク付きで出力します。ループの中で使うこと。
1 | the_category( $separator, $parents, $post_id ); |
$separatorに入れた文字で区切って出力。
$parentsに’multiple’と指定することで親カテゴリもリンク付きで出力。
$post_idに記事のIDを指定することで特定の記事の所属するカテゴリが出力できる。
wp_list_categories()
リンク付きでカテゴリーリストを出力。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | wp_list_categories( $args ); //デフォルト値 $args = array( ‘show_option_all’ => ”, ‘orderby’ => ‘name’, ‘order’ => ‘ASC’, ‘show_last_update’ => 0, ‘style’ => ‘list’, ‘show_count’ => 0, ‘hide_empty’ => 1, ‘use_desc_for_title’ => 1, ‘child_of’ => 0, ‘feed’ => ”, ‘feed_type’ => ”, ‘feed_image’ => ”, ‘exclude’ => ”, ‘exclude_tree’ => ”, ‘include’ => ”, ‘hierarchical’ => true, ‘title_li’ => __( ‘Categories’ ), ‘number’ => NULL, ‘echo’ => 1, ‘depth’ => 0, ‘current_category’ => 0, ‘pad_counts’ => 0, ‘taxonomy’ => ‘category’, ‘walker’ => ‘Walker_Category’ ); |
show_option_all…トップページのリンクテキスト
orderby…並び替え基準値(count / name / slug / term_group / id)
order…並び順(DESC / ASC)
show_last_update…最終更新日の出力(true / false)
style…リストで出力するかどうか(list / ソレ以外はa)
‘show_count’…投稿数を出すか(true / false)
‘hide_empty’…投稿がないカテゴリを出力するかどうか(true / false)
use_desc_for_title…出力したリンクのtitle要素にカテゴリの説明を出すかどうか(true / false)
child_of…子を出力したい親カテゴリのIDを指定
feed…フィードへのリンクテキスト
feed_image…フィードリンクへのイメージ
feed_type…フィードタイプ
exlude…取得したくないカテゴリID単体
exclude_tree…取得したくないカテゴリID(子カテゴリも取得しない)
include…単体で取得したいカテゴリID
hierarchical…子カテゴリをツリー構造で表示するかどうか(true / false)
title_li…ここに指定した文字列を見出しとして、その下にカテゴリリストを出力
number…表示するカテゴリ数
echo…出力するか、変数などに代入できる形とするか(true / false)
depth…カテゴリ階層を何段階まで出力するか(0(全部),1,…)
current_category…出力したすべての
pad_counts…自動で投稿数を計算するかどうか(true / false これは特に用事なし。)
taxonomy…指定したタクソノミーのみ出力
walker…よくわからんけど用事なし
get_categories()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $categories = get_categories( $args ); //デフォルト値 $args = array( ‘type’ => ‘post’, ‘child_of’ => 0, ‘parent’ => ”, ‘orderby’ => ‘name’, ‘order’ => ‘ASC’, ‘hide_empty’ => 1, ‘hierarchical’ => 1, ‘exclude’ => ”, ‘include’ => ”, ‘number’ => ”, ‘pad_counts’ => false ); |
type…取得するカテゴリの種別(post / link)
child_of…親カテゴリID(子カテゴリ以下をすべて取得したい場合)
parent…親カテゴリID(直接の子カテゴリを取得したい場合)
orderby…並び替え基準値(count / name / slug / term_group / id)
order…並び順(DESC / ASC)
‘hide_empty’…投稿がないカテゴリを出力するかどうか(true / false
hierarchical…記事のないカテゴリも、更に子カテゴリに記事があれば表示するかどうか(true / false)
exclude…取得したくないカテゴリID
include…限定的に取得したいカテゴリ
number…取得するカテゴリ数の上限
pad_counts…リンクまたは記事数の計算をする(true / false)
条件に該当したカテゴリを出力するにはforeachでループさせます
1 2 3 4 5 6 7 | <?php $categories = get_all_category_all(); foreach ($categories as $category) { ?> <li><a href=”<?= get_category_link($category–>term_id); ?>”> <?= $term–>name; ?> </a></li> <?php } ?> |
get_category_linkの引数に$category->term_idとすることでカテゴリへのリンクも貼っています。
メンバ変数で取得できる値は以下のとおり
$category->term_id…ID
$category->name…カテゴリ名
$category->slug…スラッグ
$category->term_taxonomy_id…タクソノミID
$category->taxonomy…タクソノミ名
$category->parent…親カテゴリ
$category->count…記事数
get_the_category()
投稿データのカテゴリ情報を取得する。引数に記事IDを指定するとその記事の投稿データを取得
1 | $categories = get_the_category(); |
1 | foreach ($categories as $category) { |
1 2 3 | if($cat–>cat_ID == 11){ echo “★”; }//記事IDが「11」のときは★をつけてみる echo ‘<a href=”‘ . get_category_link($category–>term_id) . ‘>’ . $cat–>cat_name . ‘</a>’; } |
メンバ変数で取得できる値は以下のとおり
$category->term_id…ID
$category->name…カテゴリ名
$category->cat_name…カテゴリ名
$category->slug…スラッグ
$category->category_nicename…スラッグ名
$category->term_group…カテゴリグループ
$category->term_taxonomy_id…タクソノミID
$category->taxonomy…タクソノミ名
$category->parent…親カテゴリ
$category->category_parent…親カテゴリ
$category->description…カテゴリの説明文
$category->category_description…カテゴリの説明文
$category->count…カテゴリに登録されている記事数
$category->category_count…カテゴリに登録されている記事数
$category->cat_ID…カテゴリID