BLOG

タクソノミーページで、タイトルとかスラッグとかの情報を取得する

| WordPress

タクソノミーのページ(taxonomy.php taxonomy-***.php)とかでタイトルとかスラッグとか、よく使うけどあれなんだっけ?的なのが多いのがこのページとかの情報の取得する方法ではないですかね?
taxonomy-staff.phpのタイトルはスタッフ紹介のページだからタイトルは「スタッフ紹介」と直書きしてもいいのかもしれないけど、できるなら、taxonomy.phpとかで使い回せるテンプレートで使いたいですよねー

タクソノミースラッグ

echo $taxonomy;

タームID

echo get_queried_object_id();

タームスラッグ

echo $term;

タイトル

single_term_title();
// または
echo single_term_title( '', false );

使い回すときに一旦変数入れてとか、出力される前にカスタマイズしたい場合とかは下の方ですね。

ディスクリプション

echo term_description();

この形だと改行とかpタグとか入ってきます。
いらない場合はフィルターとか「strip_tags」使って取り除く必要があります。

タームの情報まとめて

print_r(get_queried_object());

ただし、taxonomy.php以外のテンプレートでは「get_queried_object()」全然ちがう情報になるので注意。
taxonomy.php以外のテンプレートで取得したい場合はこうなります。

print_r(get_term({タームのID} , {タクソノミー名}));

id指定以外で取得したいとかある場合

print_r(get_term_by({'id', 'slug', 'name'}, {タームの'id', 'slug', 'name'} , {タクソノミー名}));

id以外にもslug, nameからも取得可能です。

出力される情報はこんな感じです。

WP_Term Object
(
    [term_id] => 2  // タームのID
    [name] => {ターム名}
    [slug] => {タームスラッグ}
    [term_group] => 0 // 
    [term_taxonomy_id] => 2 // 
    [taxonomy] => {タクソノミースラッグ}
    [description] => {タームディスクリプション}
    [parent] => 0 // 親タームのID
    [count] => 0 // 記事数
    [filter] => raw
    [term_order] => 1
)

普通には使わないような情報とかもあるんでしょうね。
filterとかって何に使うんだろうか。

記事数

echo get_queried_object()->count;

親タームの情報取得

print_r(get_term_by( 'id', get_queried_object()->parent, $taxonomy ));

いろいろ覚えるのきついときは「get_term」を覚えてたら良さげですねw
僕は、覚えれなさそうなので、今回まとめてみました。