WordPressのループ外でカテゴリー名とタグ名を表示させるsingle_cat_title()を極めたいと思う。
目次
single_cat_title()について
「single_cat_title()」は、アーカイブページなどのループ外でカテゴリー名を表示させるのに便利なテンプレートタグ。パラメータを用いればカテゴリー名の前に文字を挿入したり、PHPにカテゴリー名を渡すことができる。ループ内では使用できない。またカテゴリー名だけでなくタグページで使用すればタグ名を表示させることもできる。
single_cat_title()のパラメータについて
「single_cat_title()」には2つのパラメータがある。
single_cat_title( ① 接頭辞, ② 表示 )
① 接頭辞(文字列)
このパラメータでは出力するカテゴリー名(タグ名)の前に任意の文字を表示させることができる。
② 表示(真偽値)
この関数のみでカテゴリー名(タグ名)を表示させたい場合は「true」を、変数などに入れたい場合は「false」としてカテゴリー名を文字列として渡すことができる。デフォルトでは「true」になっている。
single_cat_title()の使用可能な場所
「single_cat_title()」はループ内では使用できず、カテゴリーもしくはタグアーカイブなどでカテゴリー名やタグ名を表示させるためにページ内で使用できる。
single_cat_title()の使い方
ではsingle_cat_title()の使い方を極めていってみよう。下記のコードはいずれも「category.php」のファイル内で動作させ、カテゴリー名は「Wordpress」と設定した。
single_cat_title()のみで表示させてみる
まずは「single_cat_title()」のみで表示させてみよう。コードは下記の通り。
<?php single_cat_title(); ?>
WordPress
上記の通りなんのタグもつかずに出力されているのがわかる。実際に使うには下記のように見出しタグで囲んで表示させるのが良いだろう。
<h2><?php single_cat_title(); ?></h2>
WordPress
<h2>WordPress</h2>
見出しタグで囲めば上記のように表示されカテゴリーページ内で使える。
single_cat_title()に接頭辞のパラメータを設定して表示させてみる
次は「single_cat_title()」に接頭辞のパラメータを設定して表示させてみよう。接頭辞の文字列として「カテゴリー : 」を挿入してみた。コードは下記の通り。
<?php single_cat_title('カテゴリー : '); ?>
カテゴリー : WordPress
こちらもタグなどはつかずに出力されている。実際のカテゴリーページでは先ほどのように見出しタグで囲んで使用するのがいいだろう。
single_cat_title()に出力のパラメータを設定して表示させてみる
出力のパラメータは真偽値となっているので「true」か「false」を設定する。デフォルトでは「true」になっており、先ほどまでの例では実際には「true」が設定されていた。ここでは「false」を設定した時の動きを確認してみよう。「true」では関数にカテゴリー名を出力する動作が含まれていたが「false」に設定するとカテゴリー名を文字列として返すようになっているので、下記のコートを実行すると何も表示されないので要注意。
<?php single_cat_title('', false); ?>
試しに接頭辞のパラメータに文字列を挿入し、表示のパラメータを「false」にしてみよう。コードは下記の通り。
<?php single_cat_title('カテゴリー : ', false); ?>
この場合も何も出力されないのが確認できた。
では次に出力のパラメータを「false」にしたものを変数に渡し、それを表示させてみる。コードは下記の通り。
<?php
$cat_title = single_cat_title('', false);
print $cat_title;
?>
WordPress
結果は「single_cat_title(); 」のみを実行した時と同様のものとなった。次は試しに接頭辞のパラメータも入れてみよう。また見出しでも囲んでみる。コードは下記の通り。
<?php
$cat_title = single_cat_title('カテゴリー : ', false);
print '<h2>' . $cat_title . '</h2>';
?>
カテゴリー : WordPress
<h2>カテゴリー : WordPress</h2>
上記のコードではこのように表示された。表示のパラメータが「false」に設定されていても接頭辞のパラメータに挿入された文字列もちゃんと含まれて変数に渡されているのが確認できた。
single_cat_title()についてのヒント!
上の例では「category.php」で動作させていたので特に問題ないが、アーカイブページで使用する場合は下記のようにカテゴリーページとして動作する場合のみ表示させるように条件分岐を付け加えるのが望ましい。
<?php if(is_category()) : ?>
<h2><?php single_cat_title(); ?></h2>
<? endif; ?>
まとめ
これで「single_cat_title()」についてお極めいただけたでしょうか。カテゴリーページでタイトルとしてカテゴリー名を表示させるにはもってこいのテンプレートタグだ。カテゴリーページだけではなくタグページ内でも用いることができる。また表示のパラメータで「false」を設定すれば変数に渡すことができるのでPHPで文字列を操作することもできる。これは実にさっぱりしていていい関数。