ページ内の目次を自動的に作成させたいときに便利な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)));

このように書く。

 
わかってしまえば何てことはない修正だが、予想以上にハマって時間がかかってしまった。

なお、念のため書いておくが、プラグインフォルダ内のファイルは、プラグインを更新したときに内容も更新されてしまうので、その度ごとに修正が必要なことをお忘れなく。
わかっていても、ついうっかり忘れてしまうんですよね。