WordPressのカテゴリーには「説明」という項目があります。この「説明」に保存された文字がカテゴリーページに表示されるかどうかはテーマによって異なっています。また、この「説明」には基本的に簡単なHTML以外は保存できないように保存するときにHTMLを省く処理が基本的に入っています。これも実はテーマによっては通常のHTMLが保存できたりもするため少し頭が混乱するので、テーマ別にどのような状況なのかを調べてみました。
WordPress投稿のカテゴリーの説明を入力する
WordPress投稿のカテゴリーの説明を入力するには
ダッシュボード 投稿>カテゴリー をクリック
説明したいカテゴリーの下にある編集をクリック
説明に文章を入力して更新をクリックすると、カテゴリーの説明が保存されます。
この説明はデフォルトではあまり重要な意味を持ちませんが、これを表示するテーマも中にはあります。
と書いてあるように、基本的には表示しないけど、表示するテーマも中にはあるという感じの利用率のようですが実際はどうでしょうか?
Twenty Seventeen、Simplicity、Lightning、Saitmaの各テーマで検証します
テーマもたくさんありますが、今現在のデフォルトテーマであるTwenty SeventeenとゆうそうとがWebサイトを作るときに使っているのテーマSimplicity、Lightning、Saitamaの4つで検証をしてみようと思います。
Simplicity、Lightning、Saitamaについては下のブログでも説明していますので、ご興味があれば読んでみてください!
カテゴリーの説明にHTMLが保存できるかどうか?
カテゴリーの説明が表示できるか?を調べる前にまず、カテゴリーの説明にHTMLが保存できるかどうかを調べました。
ダッシュボードにある機能なのでカテゴリーの説明にHTMLが保存できるかどうかはテーマによる、というのが意外でした。
このようにh2タグと、aタグを入れた内容をカテゴリーの説明を更新すると
このようにh2タグはなくなってしまいます。デフォルトだとaタグ以外はフィルターされてしまうようです。
ところがテーマを変えると、
h2タグもそのまま保存してくれたりします。テーマによってこれが異なるので、4つのテーマで比較してみました。
テーマごとのHTML保存対応表
テーマ名 | 対応状況 |
---|---|
Twenty Seventeen | × |
Simplicity | ○ |
Lightning | × |
Saitama | × |
とこのような感じでした。Simplicity以外ではHTMLタグはフィルターされるようです。
対応していないテーマでHTMLを保存できるようにする方法
このHTMLタグを保存するカスタマイズ方法があります。
子テーマが良いのですが(親テーマのまま手を加えると次回の更新時に戻ってしまうので)、functions.phpに
remove_filter( 'pre_term_description', 'wp_filter_kses' );
この行を追加します。これだけで、投稿のカテゴリー説明でHTMLが保存されるようになります。
投稿のカテゴリー説明がカテゴリーページに表示されるかどうか?
HTMLがフィルターされてしまうにしても、どのテーマでも投稿のカテゴリー説明はデータとして保存されています。
ただし、保存はされますがカテゴリーの説明が表画面で表示されるかどうかもテーマによって異なっています。
その対応をテーマごとに調べてみました。
テーマごとにカテゴリー説明が表示されるかどうか
テーマ名 | 対応状況 |
---|---|
Twenty Seventeen | ○ |
Simplicity | ○ |
Lightning | ○ |
Saitama | × |
このようになりました。各テーマでの表示は、
Twenty Seventeen
Simplicity
Lightning
のように、特にカスタマイズをしなくても投稿のカテゴリー説明が表示されていました。
Saitamaの場合は、
このように投稿のカテゴリー説明は表示されていませんでした。
カテゴリー説明が表示されていないテーマで表示されるようにカスタマイズする方法
カテゴリー説明が表示されていないテーマでも、カテゴリー説明を表示するようにカスタマイズすることができます。
まず、そのテーマでカテゴリー一覧を表示しているテンプレートを探します。一般的にはcategory.phpがあれば、それがカテゴリーの一覧を出しているもののようです。ない場合はarchive.php、それもない場合はindex.phpということが
に書いてありました。
※ テーマによっては、それ以外のテンプレートを使っている場合もあります。
Saitamaの場合はarchve.phpで表示しているようでしたのでこのファイルを子テーマのフォルダにコピーして、
<?php if ( have_posts() ) : ?> <?php while ( have_posts() ) : the_post(); ?>
という部分を
<?php if ( have_posts() ) : ?> <?php echo category_description(); ?> <?php while ( have_posts() ) : the_post(); ?>
と変更しました。この追加した行 <?php echo category_description(); ?> でカテゴリー説明を表示しています。
これで表画面を表示してみると
このようにカテゴリー説明が表示されるようになりました。
コメント