WPのプラグイン「Table of Contents Plus」をカテゴリートップでも表示させるようにしてみた
ページ内の目次を自動的に作成させたいときに便利なWordPressのプラグイン「Table of Contents Plus」(以下、TOCP)。
重宝しているのだが、一つだけ困っていたのが、カテゴリートップページに表示させることができない点。
表示させられないものかと奮闘し、なんとか表示させられたので記録を残しておく。
修正したのは以下のファイル。
プラグインフォルダ内のtoc.php
正直言って、プラグインフォルダ内のファイルは直には触りたくない。
が、背に腹は代えられず。。。
プラグインファイル本体(toc.php)内で
if ( !is_search() && !is_archive() && !is_feed() ) return '<!--TOC-->'; else return;
このように、カテゴリーページには目次が表示されないよう指定されているので
if ( !is_search() && !is_feed() ) return '<!--TOC-->'; else return;
このように該当箇所を削ってあげればよい。
使用しているテーマによっては、これだけで目次が表示されるようになる。
しかし、テーマによっては次の修正が必要な場合がある。
テーマフォルダ内のarchive.php
TOCPは the_content() を使っているので、
カテゴリートップを表示させるarchive.php内でも、the_content() を呼び出す必要がある。
たとえば、
$category_content = wpautop(do_shortcode(get_term_meta( $cat_id, "content", true)));
このように、カテゴリートップのコンテンツを the_content() を使わずに呼び出してもTOCは機能しない。
そこで、
$category_content = wpautop(apply_filters('the_content',get_term_meta( $cat_id, "content", true)));
このように書く。
わかってしまえば何てことはない修正だが、予想以上にハマって時間がかかってしまった。
なお、念のため書いておくが、プラグインフォルダ内のファイルは、プラグインを更新したときに内容も更新されてしまうので、その度ごとに修正が必要なことをお忘れなく。
わかっていても、ついうっかり忘れてしまうんですよね。