[WordPress]カテゴリー情報を表示させてみよう

photo_00136

WordPressのカスタマイズにおいて「get_the_category」テンプレートタグを使うと、カテゴリーによって「画像とタイトルで一覧を表示」「タイトルのみ表示」「画像とタイトルと本文の抜粋を表示」などの表示内容を変更することもできます。

カテゴリーによって出力されるクラス名を変えておくことにより、スタイルシートでカテゴリーごとにデザインを変えてしまうなんていうこともできてしまいます。

カテゴリー情報の取得と変数への代入

まず、「get_the_category();」でカテゴリー情報を取得して、変数 $category に代入します。$category の中身がどのようになっているのかを見てみましょう。
$category = get_the_category(); の次の行に以下を記載し、変数の中身を出力します。

print_r($category);

※PHPの echo は配列に対応していないので、配列を表示させるには print_r を使います。
下記のようなデータが返ってきました。

実際は改行がない繋がったデータになっていますが、見やすくするためにここでは改行を入れています。
カテゴリー番号16がMacになっており、「category_count」にはカテゴリーに所属している投稿数が4件と表示されています。
後は、サイト上に表示するために、下記の情報をひとつずつ取得していけば良いですね。
上記の各項目を変数に入れるには以下のように記載します。

$cat_name = $category[0]->name;

各項目にどのようなデータが入っているかを知るには以下の表をご覧ください。

プロパティ名データ型説明
term_idintID
namestring名前
slugstringスラッグ
countint投稿数
cat_IDintカテゴリーID(term_idのエイリアス)
category_countint投稿数(countのエイリアス)
cat_namestringカテゴリー名(nameのエイリアス)
category_nicenamestringナイスネーム(slugのエイリアス)

$cat_id = $category[0]->term_id;
$cat_name = $category[0]->name;
$cat_slug = $category[0]->category_nicename;
$cat_count = $category[0]->count;

という形で変数に対応する情報が入っているので、表示させたい場所に以下のソースを記載します。

これで各情報がブラウザ上に出力されます。

カテゴリー別にデザインを変更する方法

応用編としてカテゴリーごとにデザインを変更する方法を考えてみましょう。
カテゴリー別にクラス名を変更していけばスタイルシート側でデザインを変更できますよね。

↓プログラム実行結果

<div class=”cat-16″>
Mac
</div>

このようにクラス名を cat-数字 の形で出力することができました。

あとはスタイルシートで

のように好きにデザインすればOKです。
このようなクラスの出力とスタイルシートの設定はいろいろな場面で使えるのでしっかり覚えましょう!

single_cat_titleで簡単にカテゴリータイトルを取得・表示

get_the_category() ではカテゴリー情報の詳細を取得することができましたが、現在開いているページのカテゴリー名を取得・表示したい場合は single_cat_title()を使うともっと簡単にカテゴリー名を表示できます。

書式は下記のようになります。

single_cat_title( $prefix, $display );

$prefixにはタイトルの前に出力するテキストを指定
$displayはtrueを設定。falseを設定するとタイトルを表示しない(変数に入れる時に利用)

実例を見た方がわかりやすいと思いますので、以下にソースと実行結果を記載します。

たったこれだけで、
↓プログラム実行結果

カテゴリー名:Mac

カテゴリー名が出力できてしまいました。

第二引数にfalseを指定することにより、PHPの変数にカテゴリー名を入れることができます。

↓プログラム実行結果

カテゴリーはMacです

これを使えば $cat_name という変数にカテゴリー名が入っているので、前後に文字列をつけたりすることができます。

カテゴリー関連のテンプレートタグ

カテゴリー関連のテンプレートタグを幾つか紹介します。
WordPress Codex日本語版 テンプレートタグに詳細が載っているので必要な時はリンク先を覗いてみましょう。

関数名説明
single_cat_title現在のカテゴリーアーカイブページのカテゴリ名を取得
get_the_category現在の投稿が属する各カテゴリー情報を取得
get_category_link指定したカテゴリーのURLを取得
get_categories カテゴリー情報を取得
get_termsタクソノミー情報を取得
get_the_category_by_ID カテゴリーIDからカテゴリー名を取得
get_the_category_listカテゴリー別アーカイブのリンクリストを取得
wp_get_post_categories 投稿記事のカテゴリー情報を取得

  • Categories

  • タグ

  • アーカイブ

  • 最近の投稿