【wordpress】カテゴリー設定の説明文をビジュアルエディターに【プラグインなし】

カテゴリー設定のテキスト

ワードプレスでは記事を分けるカテゴリーがありますが、そのカテゴリーごとに説明文を書ける部分があります。
その部分は通常のテキストしか入れることは出来ませんが、functions.phpにコードを入れることによって、HTMLを使えるように出来ます。

カテゴリー説明のメリット

そのカテゴリーについての補足を書きたいけれどわざわざ1記事作ったり固定ページを作るほど長い文章ではない、記事が並んでいるページに一緒に説明を載せたい、という時にそこにテキストを入れておけばそのカテゴリーの内容をユーザーに伝えやすくなります。
カテゴリーを細かく分けているサイトや、増やしていくスタイルのサイトでは活用するとわかりやすくなるのではないかと思います。

変更方法

Rich Text Tagsというプラグインもありますが、今回はfunctions.phpに次のコードを追加するだけで変更できる方法になります。
//HTMLタグを使えるようにする
remove_filter( 'pre_term_description', 'wp_filter_kses' );
//pタグを取り除く
remove_filter( 'term_description', 'wp_kses_data' );

//代わりに表示するビジュアルエディターのHTML
add_filter('edit_category_form_fields', 'cat_description');
if ( !function_exists( 'cat_description' ) ):
function cat_description($tag){
  ?>
    <table class="form-table">
      <tr class="form-field">
        <th scope="row" valign="top"><label for="description"><?php _e('Description'); ?></label></th>
        <td>
        <?php
          $settings = array('wpautop' => true, 'media_buttons' => true, 'quicktags' => true, 'textarea_rows' => '15', 'textarea_name' => 'description' );
          wp_editor(wp_kses_post($tag->description , ENT_QUOTES, 'UTF-8'), 'cat_description', $settings);
        ?>
        <br />
        <span class="description"><?php _e('The description is not prominent by default; however, some themes may show it.'); ?></span>
        </td>
      </tr>
    </table>
  <?php
}
endif;

//「カテゴリー説明文」を取り除く
add_action('admin_head', 'remove_default_category_description');
if ( !function_exists( 'remove_default_category_description' ) ):
function remove_default_category_description(){
  global $current_screen;
  if ( $current_screen->id == 'edit-category' )
  {
  ?>
    <script type="text/javascript">
    jQuery(function($) {
        $('textarea#description').closest('tr.form-field').remove();
    });
    </script>
  <?php
  }
}
endif;
上記のタグで変更完了ですが、テーマによってそもそも説明文を表示する設定になっていない場合はcategory.phpなどに以下のコードを入れます
<!-- カテゴリの説明文 -->
<?php if (is_category() && //カテゴリページの時
          !is_paged() &&   //カテゴリページのトップの時
          category_description()) : //カテゴリの説明文が空でない時 ?>
<div class="category-description"><?php echo category_description(); ?></div>
<?php endif; ?>

まとめ

テーマによっては表示されないようになっているので、知らない方もいらっしゃるかとおもいますが、私はちょっとした説明を書くのにとてもいい部分に感じたので、活用していました。もし気になったら是非カテゴリーの設定を見直してみてください!

コメントを残す

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