アーカイブページでカテゴリ・タグの情報を取得するのに毎回混乱してしまう…
WordPressには様々なテンプレートタグや関数が用意されていて自在にカスタマイズ可能ですが、ルールが統一されていなかったり似たような機能を持つものがあったりして一度は混乱したことがあるかと思います。
例として、アーカイブ(カテゴリ・タグ)ページで、現在のカテゴリ・タグ名や説明文、投稿されている記事の数などを表示する機会は結構多いと思いますが、少々手順が煩雑でカスタマイズ初心者にはつまづくかも知れません。カスタマイズ経験者でも結構忘れます。
そんな問題を解決する関数を作りました!
というわけで、アーカイブ(カテゴリ、タグ)ページで、ページの情報を簡単に取得する関数を作ってみましたので是非ご利用ください!カスタムタクソノミーにも対応しています!
使い方は簡単!以下の2ステップだけ!
1. 以下の関数をそのままfunctions.php内の最下部あたりに貼り付けます。
/*
アーカイブページで現在のカテゴリー・タグ・タームを取得する
*/
function get_current_term(){
$id;
$tax_slug;
if(is_category()){
$tax_slug = "category";
$id = get_query_var('cat');
}else if(is_tag()){
$tax_slug = "post_tag";
$id = get_query_var('tag_id');
}else if(is_tax()){
$tax_slug = get_query_var('taxonomy');
$term_slug = get_query_var('term');
$term = get_term_by("slug",$term_slug,$tax_slug);
$id = $term->term_id;
}
return get_term($id,$tax_slug);
}
2. あとはアーカイブ(category.php、tag.phpなど)テンプレートの任意の場所に以下のソースコードを記述するだけ!
//カテゴリ・タグ・カスタムタクソノミー オブジェクトを取得 $term = get_current_term(); //以下は必要に応じて記述 echo $term->name; //名前を表示 echo $term->slug; //スラッグを表示 echo $term->description; //説明文を表示 echo $term->count; //投稿数を表示
以上になります。
地味な関数ですが今まではアーカイブの種類ごとに記述を変更する必要がありましたが、この関数で各アーカイブ共通の記述で情報が取得できるようになるので重宝するかと思います。
※この関数は投稿ページ(single.php)では使用できません。投稿ページではget_the_category()やget_term()をお使いください。
いかがでしたでしょうか?
役に立った!という方は是非シェアしていただけますとサイト運営の励みになります。

コメント