WordPressで事業用のブログサイトを運営している生徒さんに、記事ページに自動で目次を表示させる方法をレッスンさせていただきました。
Table of contents plusという名前のプラグインを使うのが一般的な方法ですが、プラグインの使い方や、設定の意味については全く難しくありません。
プラグインのインストールから設定の完了まで、30分ぐらいかけて丁寧に解説させていただきましたが、何も疑問を残さずご理解いただけたようです。
面白いのは、このプラグインがどういう仕組みで目次を自動的に作成するのかという点です。
Table of contents plusは、WordPressのデータベースに保存されている記事の本文(タイトル以外)を読み取って、その中に含まれている見出し(H1、H2、・・・、H6タグ)の登場順と個数を数えます。そして、あらかじめ設定ページで登録している個数以上(デフォルトでは4個以上)だった場合に、「この記事には目次を表示しなければならない」と判断します。
では、どうやって記事の中に目次を割り込ませてくるのかというと、WordPressには、データベースから記事のデータを引っ張り出してきて表示する直前に、任意のプログラムを割り込ませることができる「フック」という仕組みが用意されています。
Table of contents plusは、記事の本文を引っ張りだしてくる処理にフックをしかけて、本文の一番最初や、最初の見出しの直前など、あらかじめ決められた場所をめがけて目次のデータを埋め込んでいます。
そして、目次の埋め込みが終わったら、Table of contents plusの役目は終わりです。あとはWordPressに任せてしまえば、WordPressは目次が埋め込まれた記事データを画面に表示してくれるというわけです。