WordPressのカテゴリーページ内でカテゴリーの説明を表示させる「category_description()」を極めてみようと思う。
category_description()について
「category_description()」はカテゴリーの編集画面で入力した「説明」を取得する関数で、この関数自体には文字列を表示させる機能は含まれていないので、文字列を出力する関数と併用して使用する必要がある。
このテンプレートタグを、カテゴリーページの丈夫で使用すればSEO対策にもなり、良い結果が現れるのではないだろうか。
category_description()のパラメータについて
「category_description()」には1つのパラメータがある。
category_description( ① カテゴリーID )
① カテゴリーID(整数)
このパラメータにカテゴリーIDを設定することによって指定したカテゴリーの説明を文字列として返すことができる。何も指定しない場合は、現在のカテゴリーの説明が返される。
category_description()の使用可能な場所
このテンプレートタグはカテゴリーページ内で使用することができる。タグページ内などでは使用しても何も表示されない。
アーカイブページで「category_description()」を使用する場合は条件分岐でカテゴリーページに絞る
このテンプレートタグはカテゴリーページのみで動作するのでアーカイブページ(archive.php)で使用する場合は下記のように条件分岐を使ってカテゴリーページ内でのみ動かすようにすること。
<?php if(is_category()) : ?>
<?php echo category_description(); ?>
<? endif; ?>
category_description()の使い方
ちなみに今回はカテゴリーの編集画面内で下記の文字列を入れている。カテゴリーの「説明」部分に入力したHTMLタグも表示されるか確認するためにHTMLタグも含めている。しかし「説明」には使用できないHTMLタグもあるので要注意。
これは、<a href="https://ja.wordpress.org/">WordPress</a>に関するカテゴリーです。主にプラグインやカスタマイズについての記事を投稿しています。
<strong>HTMLタグも扱えるか確認してみましょう。</strong>
category_description()のみで表示させてみる
このテンプレートタグの内部には文字列を出力する関数は含まれていないので、このテンプレートタグのみで表示させたい場合は文字列を出力する関数と併用すること。シンブルに表示させたい場合は下記のコードのようにする。出力関数の「echo」がなければ何も表示されない。
<?php echo category_description(); ?>
これは、Ubuntuに関するカテゴリーです。主にUbuntuにインストールするアプリケーションについての記事を投稿しています。
HTMLタグも扱えるか確認してみましょう。
<p>これは、<a href="https://ja.wordpress.org/">WordPress</a>に関するカテゴリーです。主にプラグインやカスタマイズについての記事を投稿しています。<br>
<strong>HTMLタグも扱えるか確認してみましょう。</strong></p>
上記のように出力された。「説明」に入力されたHTMLタグも問題なく表示されている。改行部分はBRタグで出力されている。また、Pタグで囲まれて文字列が出力されているのでその点は要注意だ。これはパラメータで制御できる部分ではないので、デザインでPタグが邪魔になる場合はスタイルシートで調整する必要がありそうた。
category_description()にカテゴリーIDのパラメータを設定して表示させてみる
次にカテゴリーIDのパラメータを設定して表示させてみよう。パラメータでカテゴリーIDを指定することで特定のカテゴリーの説明を取得し表示させることができる。「WordPress」のカテゴリーページで「single_cat_title()」でカテゴリー名を表示させて「Ubuntu」の説明を取得するように指定している。コードは下記の通り。
<h2><?php single_cat_title(); ?></h2>
<?php echo category_description(4); ?>
WordPress
これは、Ubuntuに関するカテゴリーです。主にUbuntuにインストールするアプリケーションについての記事を投稿しています。
HTMLタグも扱えるか確認してみましょう。
<h2>WordPress</h2>
<p>これは、Ubuntuに関するカテゴリーです。主にUbuntuにインストールするアプリケーションについての記事を投稿しています。<br>
<strong>HTMLタグも扱えるか確認してみましょう。</strong></p>
上記のように表示された。指定したコードの通りに表示されている。
カテゴリーのスラッグからカテゴリーIDを取得してcategory_description()で表示させてみる
上記の「パラメータでカテゴリーIDを指定する」方法にカテゴリーのスラッグからIDを取得するようにすれば、カテゴリーのスラッグから説明を表示させることができる。この場合「get_category_by_slug」の関数を使用する。先ほどと同じように「WordPress」のカテゴリーページで「Ubuntu」の説明を取得するように指定している。コードは下記の通り。
<h2><?php single_cat_title(); ?></h2>
<?php echo category_description( get_category_by_slug('ubuntu')->term_id ); ?>
WordPress
これは、Ubuntuに関するカテゴリーです。主にUbuntuにインストールするアプリケーションについての記事を投稿しています。
HTMLタグも扱えるか確認してみましょう。
<h2>WordPress</h2>
<p>これは、Ubuntuに関するカテゴリーです。主にUbuntuにインストールするアプリケーションについての記事を投稿しています。<br>
<strong>HTMLタグも扱えるか確認してみましょう。</strong></p>
予想通り、先ほどの「パラメータでカテゴリーIDを指定する」と同じ結果になった。
まとめ
これで皆さんも「category_description()」をお極めしていただけただろうか。SEO的にはそれぞれのカテゴリーページ内でも該当するカテゴリーの説明を表示させた方がいいので、テーマがカテゴリーの説明の表示に対応していない場合は、ぜひこのテンプレートタグを追加してカテゴリーページをSEOに強いページにしてみよう。