カテゴリー
WordPressカスタマイズ

WordPress「カテゴリーの説明」を表示する

カテゴリページで入力できる「カテゴリーの説明
これってなんなの?
SEOに役に立つの?
という方も多いのではないでしょうか。

この説明はデフォルトではあまり重要な意味を持ちませんが、これを表示するテーマも中にはあります。

このように基本的には入力するだけでは出力されません。
使い道はいろいろとありますが、所属記事のリスト表示だけになることの多い、カテゴリページの冒頭に文章を加える、あるいはSEO的な観点でメタタグの出力に使うといったところでしょう。

それでは早速「カテゴリーの説明」の出力方法を解説します。

<?php echo category_description(); ?>

といっても基本はこれだけです。
カテゴリの表示に使用しているcategory.phparchive.phpなどのテンプレートで任意の箇所に記述します。
Pタグで括られた説明を出力するだけであれば、これだけでOKです。
以下はもう少しいろんなことをやってみたいという方のための情報です。

出力する条件を絞り込む

例として「カテゴリーの説明」の表示に諸処条件を加えてみます。

  1. カテゴリの表示をアーカイブテンプレートなどと共用している
  2. カテゴリが複数ページにページングされている場合に最初のページだけ表示
  3. HTMLタグを一緒に出力する場合は入力がなくても空タグが出力されないよう、「カテゴリーの説明」が入力されている場合だけ出力する
<?php
if (is_category() && !is_paged() && category_description()){
  echo '<p>'.category_description().'</p>';
}
?>

Pタグの削除

自動のPタグを削除したければ、functions.phpでフィルタを解除します。

<?php remove_filter ('term_description', 'wpautop'); ?>

※実際の処理はwp-includes/default-filters.phpで行われるのですが、直接編集するとアップデートの際に無効になってしまうため、functions.phpでリムーブします。

functions.phpは「怖いからいじりたくない」という方は「カテゴリーの説明」の出力前にwpautopフィルタをテンプレート上からでも無効にできます。

<?php 
remove_filter('term_description', 'wpautop');
echo category_description(); 
?>

HTMLタグを使用する

「カテゴリーの説明」ではHTMLタグの使用が制限されています。
上記、例のようにPHP側でHTMLタグを出力する分には問題ありませんが、フィールド自体にHTMLタグ入力はできません。
このため、フィールドでHTMLタグを使う場合はfunctions.phpに下記を追加します。
このフィルタを除外しなければ、タグを入力しても保存時に除外されてしまいます。

<?php 
remove_filter( 'pre_term_description', 'wp_filter_kses' );
?>

いかがでしたか?
「カテゴリーの説明」に文章を加えるだけも味気ないカテゴリページが少しはユーザーのためになるのではないでしょうか。

実際のところ、「冒頭に説明文を加えたい」、「メタディスクリプションを加えたい」など複数の要素を加えたくなると「カテゴリーの説明」だけでは足らなくなるかと思います。

次回はこれを解決するカテゴリにカスタムフィールドを追加する方法について記事にしてみたいと思います。

profile image

執筆:R3098

WEBサービス構築・監修が生業です。WordPress 関連では Aurora Heatmap などのプラグイン開発も行っています。サイト運営者の力になりたいと考えます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトは reCAPTCHA によって保護されており、Google のプライバシーポリシー および 利用規約 に適用されます。

reCaptcha の認証期間が終了しました。ページを再読み込みしてください。