ワードプレスの投稿に目次を付ける(開発者向け)|wordpress

ワードプレスに目次を付けるには優秀なプラグインがいくつかあります。

これらは本当に優秀で簡単に記事に目次を付けれます。しかも基本的にノーコードでいれれます。

 

しかし、独自テーマの開発などでは少し使いづらいと感じるところも…

 

というわけで開発者向けにオリジナルの目次を追加する方法を伝授いたしましょう。

 

 

記事のhタグにIDを付与

まずは、記事内のhタグにアンカーリンクを作るためのIDを付与します。

 

上記コードでは正規表現でh2とh3タグを検索し、IDを付与しています。

このコードをfunctions.phpにでも記載しておきましょう。

hタグの範囲を変更したい場合は8行目の「’/<h([2-3])([^>]*)>(.*?)<\/h\1>/’,」を「’/<h([2-4])([^>]*)>(.*?)<\/h\1>/’,」の様に修正してください。

また、2-4行目でpostに限定してますのでカスタム投稿タイプに適応したい場合は適宜修正をいれましょう。

 

 

目次を生成するコードを記述

次は目次を生成するコードです。以下を引き続きfunctions.phpに記載しましょう。

 

ちょっと長いですが貼り付けましょう。

注意点として3行目の「preg_match_all」で指定する正規表現のhタグの範囲は前述の記事内のhタグにIDを付与した処理と同じ範囲になるよう気をつけてください。

軽く解説すると「generate_nested_toc」は目次を生成するための関数で、「render_toc」はhtmlを付与するための関数です。

single.phpなどで使用するのは「generate_nested_toc」の方となりますので間違えないようにしましょう。

 

 

目次の出力

ここまで来たら後は簡単、目次を表示したい箇所に関数を記述しましょう。

第1引数で記事の内容が必要なのでおきをつけください。

例としては下記のようにつかいます。

 

 

これで目次が生成できたと思います。

それでは良きコーディングライフを。

WordPress

こちらもおすすめ