【wordpress】記事のカテゴリを取得したい時の関数あれこれ

2014.6.28 Wordpress

wordpressで記事のカテゴリを取得したい時の関数あれこれ

wordpressで記事ページを作るとき、ないしトップページの時点でかなりの可能性で必要とされることでしょう。「記事のカテゴリ」を表示すること。

僕がよく使うものをメモします。

 

the_category()

リンク付きで出力します。ループの中で使うこと。

the_category( $separator, $parents, $post_id );

$separatorに入れた文字で区切って出力。

$parentsに’multiple’と指定することで親カテゴリもリンク付きで出力。

$post_idに記事のIDを指定することで特定の記事の所属するカテゴリが出力できる。

 

wp_list_categories()

リンク付きでカテゴリーリストを出力。

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…出力したすべての<li>にclass=”current_category”がつく?
pad_counts…自動で投稿数を計算するかどうか(true / false これは特に用事なし。)
taxonomy…指定したタクソノミーのみ出力
walker…よくわからんけど用事なし

get_categories()

$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でループさせます

<?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を指定するとその記事の投稿データを取得

$categories = get_the_category();
foreach ($categories as $category) {
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

プロフィール

東京でWebデザイナー・コーダーとして、フロントエンド的なことからデザイン思考的なことを考えたりして、ごにょごにょと活動中。(ポートフォリオ)Webクリエイターでは珍しい(?) HIPHOP, R&B好き。休日はよくカフェや漫画喫茶に出向いたりパン屋に行ったりコーヒ豆買いに行ったり、主に散歩しています。。デザインのトレンドやデザイン思考、HTML、CSSからSASS、Javascript、Wordpress構築などコーディングのTIPSなどをブログにアップしていきます。その他のことはtwitter( @satohmsys )まで。コーヒー友達募集中。