今回は、WordPressプラグイン「Table of contents plus」の改造を致しましたので、その際に行った内容を共有させていただきます。
Table of Contents plus

Table of contents plusは、目次の自動生成プラグインです。
- 投稿・固定ページに目次を生成
- 目次の見出しレベルは調整できる
- ショートコードで1ページだけ目次を出すことも可能
- サイトマップの出力もできる
といった強力なプラグインです。
最近のGoogleでは、アンカーのついている見出しを把握して、検索エンジンでの表示時に表示されるようになりましたので、より有用なプラグインになったと言えます。
今回WordPressのプラグイン修正で行ったこと
今回は、functions.phpに自分でカスタマイズの為に入れたコードと競合してしまった為に修正を余儀なくされました。
1 |
add_filter( 'the_content', array(&$this, 'the_content'), 100 ); // run after shortcodes are interpretted (level 10) |
table of contents plusのメインコードはtoc.phpにあります。上記のadd_filterコードは、wordpressでthe_content()を呼び出した時に、関数をフックさせるための処理です。
「run after shortcodes are interpretted (level 10)」という記載は、shortcode(ショートコード)などでthe_content()にフックさせている関数もあるため、それよりもあとに実施するよ!という表記です。
ショートコードは、[contact-form-7 404 "Not Found"]なども全て含まれると思っておいて大丈夫です。(add_filterのデフォルトがlevel 10です)
今回は、この優先順位の問題でバッティングしたために、変更させていただきました。
1 |
add_filter( 'the_content', array(&$this, 'the_content'), 99 ); // run after shortcodes are interpretted (level 10) |
今回は、優先順位を1下げて(実行は先になるので、優先順位は上がる?のでしょうか)、先に実行するようにしました。
functions.phpの方の優先順位を101にしても、求めている結果は得られるのですが、諸々の事情でプラグインを変更しました。
