今回はWordPressでカテゴリー名、ID、スラッグを取得する方法を解説します。
WordPressでカテゴリー名、ID、スラッグを取得する方法
それぞれを取得するには以下のように書けばokです!
<?php
// カテゴリーのデータを取得
$cat = get_the_category();
$cat = $cat[0];
// カテゴリー名(どちらでもok)
echo $cat->name;
echo $cat->cat_name;
// ID
echo $cat->cat_ID;
// スラッグ(どちらでもok)
echo $cat->slug;
echo $cat->category_nicename;
?>
カテゴリー名とスラッグは全く同じ値が取得できる書き方が2通りあります。何のために用意されているのかよくわからない…。
ハマリポイントは$cat = $cat[0];
の部分ですね。[0]
を書き忘れると出力されないので気をつけましょう。
1つの記事に2個や3個カテゴリーがつくと[1]
や[2]
といった感じで配列のインデックス番号を指定することで2番目や3番目のカテゴリーを出力できたりします。
もし「1つしか使わないので短い書き方がいい」というのであれば以下のような書き方もできます。
<?php echo get_the_category()[0]->name; // カテゴリー名を取得 ?>
カテゴリーの他のデータも見てみる
var_dump()
するとget_the_category()
で取得したデータの中身を確認できます。
0 =>
object(WP_Term)[4140]
public 'term_id' => int 3
public 'name' => string 'ニュース' (length=12)
public 'slug' => string 'news' (length=4)
public 'term_group' => int 0
public 'term_taxonomy_id' => int 3
public 'taxonomy' => string 'category' (length=8)
public 'description' => string '' (length=0)
public 'parent' => int 0
public 'count' => int 2
public 'filter' => string 'raw' (length=3)
public 'cat_ID' => int 3
public 'category_count' => int 2
public 'category_description' => string '' (length=0)
public 'cat_name' => string 'ニュース' (length=12)
public 'category_nicename' => string 'news' (length=4)
public 'category_parent' => int 0
他にも親カテゴリーの有無やカテゴリーの説明なども取得できることがわかりますね。
「この関数って結局何が取得できるんだ?」と疑問に思った関数は一度var_dump()
して結果を見てみると理解が深まります。オススメ。
ちなみに親カテゴリーの名前やID、スラッグなどの取得方法はこちらの記事で解説しているのでよければどうぞ。