WordPressのカテゴリーページとタグページに説明文を表示させる方法
以外と知らない方も多いのかも知れませんが、WordPressのカテゴリページとタグページには、固有の説明文を表示させることができます。
※ 表示できるかどうかは、お使いのテーマによって異なります。
カテゴリーページというのは、このサイトで言えば以下のページです。
⇒ WordPressのカテゴリーページ
タグページというのは、このサイトで言えば以下のページです。
⇒ カスタマイズののタグページ
説明文として表示できるのはテキストだけではありません。
HTMLを使えるようにすることもできますので、画像を設置したりレイアウトすることも可能です。
早速、カテゴリーページとタグページに説明文を追加する手順を見ていきましょう。
手順1:表示させる説明文を登録する
まずは、表示させたい説明文をカテゴリー単位で登録していきます。
説明文を登録したカテゴリーの編集画面を開きましょう。
管理画面「投稿」⇒「カテゴリー」⇒ 説明文を登録したいカテゴリーの「編集」をクリックします。
編集画面を見ると【説明】というテキストエリアがあります。
上記の赤枠部分です。
ここに登録した内容が、カテゴリーページの指定した個所に表示されることになります。
表示させたい説明文を登録してください。
後述するカスタマイズで、HTML反映させることができます。
HTMLタグを使用しても構いません。
タグページも同じ要領で説明文を登録することができます。
管理画面「投稿」⇒「タグ」⇒ 説明文を登録したいタグの「編集」から説明文を登録してください。
手順2:説明文を出力するコードをテーマ内に設置する
先ほど登録した説明文をカテゴリー(タグ)ページで表示できる様に、テーマファイルにコードを新しく追加します。
テーマによってカスタマイズするファイルが異なってくるのですが、今回はカテゴリーページもタグページも「archive.php」で管理しているものとして解説します。
「archive.php」で管理されていない場合、カテゴリーページとタグページを管理しているファイルを探し、そのファイルに後述するコードをコピペしてください。
テーマファイルから「archive.php」を開いてください。
管理画面「外観」⇒「テーマの編集」⇒「archive.php」とアクセスします。
説明文を表示したい箇所に以下のコードを記述しましょう。
カテゴリーページで説明分を表示させたい箇所に以下のコードを。
<?php echo category_description(); ?>
タグページで説明分を表示させたい箇所に以下のコードを。
<?php echo tag_description(); ?>
カテゴリーとタグで記述するコードが異なるので注意してください。
以上の操作で、カテゴリーページとタグページに個々の説明文を設置することができます。
実際に説明文を登録したカテゴリーページかタグページを確認してください。
説明文が表示されているかと思います。
ちょっとしたカスタマイズ5選
カテゴリーページとタグページに設置した説明文をカスタマイズしてみましょう。
知っておくと便利なカスタマイズを5つご紹介します。
説明文が未入力の時、説明文を囲む要素を消す
説明文をテーマに表示させる時、<div>など何らかの要素で囲むことが考えられます。
例えば、以下の様な感じですね。
<div id="test">
<?php echo category_description(); ?>
</div>
この様な場合、説明文が未入力の場合でも【<div id=”test”></div>】と空の要素が表示されてしまいます。marginなどを設定していると、レイアウトが崩れているように見えてしまうかもしれません。
空要素が表示されるのを回避するために、以下の様な条件分岐を加えてやりましょう。
<?php if(category_description()):?>
<div id="test">
<?php echo category_description(); ?>
</div>
<?php endif;?>
こうしてやれば説明文に入力がない場合、説明文を囲む要素【<div id=”test”></div>】も非表示にすることができます。
上記はカテゴリーページの場合です。
タグページの場合は、以下のように記述してやりましょう。
<?php if(tag_description()):?>
<div id="test">
<?php echo tag_description(); ?>
</div>
<?php endif;?>
説明文を1ページ目だけに表示させる
カテゴリーページもタグページも記事数が増えてくれば、一覧ページが何ページにも分割されるかと思います。その様な場合、前述したコードを記載するだけでは、説明文は全てのページで表示されることになります。
全ページに表示させても良い場合もありますが、最初の1ページ目だけに説明文を表示させたい場合もあるかと思います。
そんな時は、以下の様に条件分岐を加えてやりましょう。
<?php if(!is_paged()):?>
<?php echo category_description(); ?>
<?php endif;?>
これで、1ページ目にしか説明文が表示されなくなります。
タグページの場合は、以下のように記述してやります。
<?php if(!tag_description()):?>
<?php echo tag_description(); ?>
<?php endif;?>
説明文でHTMLタグを使えるようにする
説明文の中でHTMLタグを使いたいケースがあるかもしれません。
しかし、デフォルトではHTMLを使うことができません。
説明文のエリアにHTMLを記述しても、HTMLがそのまま表示されてしまいます。
HTMLタグを使えるようにする場合は、以下のコードをfunctions.phpに追記しましょう。
remove_filter( 'pre_term_description', 'wp_filter_kses' );
これだけで、説明文でHTMLタグが使えるようになります。
説明文でショートコードを使えるようにする
説明文の中でショートコードを使いたいケースがあるかもしれません。
しかし、デフォルトではショートコードをを使うことができません。
説明文のエリアにショートコードを記述しても、ショートコードがそのまま表示されてしまいます。
ショートコードを使えるようにする場合は、以下のコードをfunctions.phpに追記します。
add_filter( 'term_description', 'custom_term_description' );
function custom_term_description( $term ){
if( empty( $term ) ) return false;
return apply_filters( 'the_content', $term );
}
これだけで、ショートコードが使えるようになります。
説明文をリンクタイトルに反映させない
説明文を使用すると、その説明文がリンクタイトルに挿入されてしまう場合があります。
カテゴリー名が【WordPress】で、説明文が100文字程度だとした場合、カテゴリーページ【WordPress】へのリンクタイトル部分に、100文字程度の説明文が挿入されてしまうわけです。
これは、あまり好ましい状態ではありません。
説明文がリンクタイトルに挿入されてしまうのを回避する方法をご紹介します。
wp_list_categories()を使っている場合
以下の様なコードでカテゴリーの一覧を表示している場合。
<?php wp_list_categories(); ?>
テンプレートタグを以下の様に変更することで、リンクタイトルに説明文が挿入されるのを回避することができます。
<?php wp_list_categories('use_desc_for_title=0'); ?>
テーマ内で使っている箇所があれば修正しておきましょう。
カテゴリーウィジェットの場合
ウィジェットエリアにカテゴリーウィジェットを設置している場合、そちらのリンクタイトルにも説明文が挿入されてしまいます。
こちらを回避するためには、functions.phpに以下のコードを記述して保存します。
function my_widget_categories_args( $cat_args ) {
$cat_args['use_desc_for_title'] = 0;
return $cat_args;
}
add_filter( 'widget_categories_args', 'my_widget_categories_args' );
参考サイト:WordPressでカテゴリーページに説明文・子カテゴリへのリンクを表示する方法
このコードを記述しておけば、カテゴリーウィジェットのリンクタイトルに説明文が挿入されなくなります。
まとめ
カテゴリーとタグページに説明文を入れる方法をご紹介しました。
単調なカテゴリーページやタグページにオリジナリティを出すことができます。
ぜひ、説明文を上手く活用してください。
今回の内容で分からないことがあれば、お問い合わせをいただければと思います。
コメントを残す