WordPress 逆引き関数・タグまとめ カテゴリ編
- 投稿日/更新日
WPを使い始めてまだ一ヶ月、わからないことがたくさんあります。わからないことがわからないのもそうですが、何をどうやって探せばいいのかもわからない。ドキュメントもいまいち使いにくい…。ということで、ちまちまち逆引き辞典のようなものをまとめておきます。間違いはありそうなので最初に謝っておきます。
WordPressの関数には「取得」と「表示」があり、パラメーターによってどちらにも使うことができるものもあります。「表示」とは、echoやprint_rなどの出力関数を必要とせずとも出力されるもの、「取得」は変数などに値や配列として引き渡すことができるもの(つまり表示にはechoなどが必要)です。
カテゴリーの情報をすべて取得したい
//取得 get_the_category();
早い話がこの関数で殆どの情報は取得できます。返り値は配列になっていますので、次のようにprint_rで内容を確認することが出来ます。
$categoryArrayObject = get_the_category();
print_r($categoryArrayObject);
//出力結果
Array(
[0] => WP_Term Object
(
[term_id] => 5
[name] => WordPress
[slug] => wordpress
[term_group] => 0
[term_taxonomy_id] => 5
[taxonomy] => category
[description] => WordPressに関するトラブルやノウハウ・TIPSなんかをまとめています
[parent] => 0
[count] => 4
[filter] => raw
[cat_ID] => 5
[category_count] => 4
[category_description] => WordPressに関するトラブルやノウハウ・TIPSなんかをまとめています
[cat_name] => WordPress
[category_nicename] => wordpress
[category_parent] => 0
))
一つ一つのプロパティにアクセスして出力する際は、矢印(->)のアロー関数を用います。
echo $categoryArrayObject[0]->cat_ID; //出力結果 5 echo $categoryArrayObject[0]->name; //出力結果 WordPress
カテゴリーページにおいては返り値の配列は1つ(つまり[0]のみ)になるはずですが、ページタイプが投稿において複数のカテゴリに登録している場合、複数の結果が返ってきます。その場合は下記のようにループさせると良いでしょう。
categoryArrayObject = get_the_category(); foreach ($categoryArrayObject as $Object){ echo $Object->cat_ID.$categoryArrayObject[0]->name."\n"; } //出力結果 10Knowledge 7Knowledge
カテゴリかどうかを判断したい
//取得 is_category()
戻り値は真偽値。
カテゴリーのDescription(説明文)を表示したい
get_the_category()
でも取得できますが、下記のような書き方でも可能です。どちらも同一の内容が出力されていますが、もしかすると何かが違うのかもしれません(わからん)。カテゴリページでのみ取得可能です。
//取得 category_description() //取得 term_description()
カテゴリーの名前・タイトルを表示・取得したい
get_the_category()
で取得できますが、下記のような書き方でも可能です。
//取得 single_cat_title('',false) //出力 single_cat_title('',true)
$display
をtrue
にすると、echoがなくても出力されます。false
にすると変数に代入が可能です。カテゴリページでのみ取得可能です。
カテゴリーのURLを取得したい
//取得 get_category_link(カテゴリID)
カテゴリIDは必須です。get_the_category()
で取得したIDを代入するとよいでしょう。なぜURLだけが別途関数を使わないといけないのかが不思議です。
属していないカテゴリーの情報を取得したい(ターム版)
$terms = get_terms("category",array('hide_empty' => false)); print_r($terms); //出力結果 [0] => WP_Term Object ( [term_id] => 11 [name] => Design [slug] => design [term_group] => 0 [term_taxonomy_id] => 11 [taxonomy] => category [description] => [parent] => 0 [count] => 0 [filter] => raw ) [1] => WP_Term Object ( [term_id] => 10 [name] => Knowledge [slug] => knowledge [term_group] => 0 [term_taxonomy_id] => 10 [taxonomy] => category [description] => どの枠にも当てはまらないWebやソフトウェアのTIPS的なもの。 [parent] => 0 [count] => 4 [filter] => raw )
get_terms()
はあらゆる情報(タクソノミー)にアクセスできる関数です。第一引数に「category」と指定することで、カテゴリの全情報を取得できます。get_the_category()
も引数にIDを指定すれば、そのIDに関係するカテゴリ情報が取得できますが、全情報にアクセスしたい場合はこちらを利用したほうがいいかもしれません。
投稿が属するカテゴリーの名前とURLを取得したい
//出力 the_category(', ') //出力結果 <a href="https://webtech.fukushimaku.jp/cat/wordpress/" rel="category tag">WordPress</a>
個人的にはget_the_category()
で十分だと思うのですが、こちらはAタグ付きで出力されます。
また随時追記していきたいと思います。
備忘録として残しておきます。