記事内に商品プロモーションを含む場合があります

Blog WordPress

【プラグインなし】WordPressの記事ページにシンプルな「目次」を表示させる方法

【プラグインなし】WordPressの記事ページにシンプルな「目次」を表示させる方法

WordPressの記事に目次をつけたいな...
できればプラグインなしでできないかな...

こういった方向けに、プラグインなしでWordPressの投稿記事ページにシンプルな目次を表示させる方法を解説していきます。

目次を設定することで、ユーザーが記事の内容を視覚的に理解できるのでユーザービリティを高めることができます。

目次を表示させる便利なプラグインもたくさんありますが、サイトの動作が重くなる・プラグインの脆弱性から攻撃される可能性もあるので、できるだけプラグインを使わないように心掛けることをオススメします。

この記事を書いている僕は、完全未経験(前職は美容師)からWebデザイナーに転職し、実際の現場でよくある実装事例をわかりやすく解説していきます。

ご参考になれば幸いです。

目次の完成イメージ

目次の完成イメージ

今回作成するシンプルな「目次」のイメージは以下になります。

WordPressの目次完成イメージ

後ほど解説していきますが、CSSを変更することで目次のデザインは自由に作成することができるのでカスタマイズしてみてください。

記事に目次を表示させる手順

記事に目次を表示させる手順

目次を表示させる手順は下記の3つの手順になっています。

目次を表示させる手順

  • footer.phpにコードを追加
  • 記事中にコードを追加
  • CSSを好きなデザインにカスタマイズ

各手順を解説していきます。

footer.phpにコードを追加

「footer.php」「/body」タグの直前にコードを追加します。

下記コードを画像の赤枠部分にコピペします。

footer.phpにコードを追加
jQuery(function($) {
  var toc = ''; // 目次のHTMLを保持する変数
  $("article").find("h2, h3").each(function() { // 記事内のh2とh3要素を見つける
    var level = this.nodeName.toLowerCase() === "h2" ? 1 : 2; // 見出しのレベルを決定する
    toc += '<li><a href="#' + this.id + '">' + $(this).text() + "</a></li>\n"; // 目次に見出しのリンクを追加
  });
  if (toc) { // 目次が空でない場合のみ、目次を挿入する
    $("#toc").html('<div class="mokuji">目次</div><ol>' + toc + '</ol>'); // 目次を表示する
  }
});

記事中にコードを追加

記事中の目次を表示させたい部分に下記コードを追加します。

<div id='toc'></div>
記事中にコードを追加

記事の中に目次を追加したら、ちゃんと表示されているかを確認してみましょう。

下記の画像のように表示されていればOKです!

目次表示イメージ

CSSを好きなデザインにカスタマイズ

「style.css」に下記コードを追加します。

#toc {
  margin: 30px 40px; /* 目次の上下左右のマージン */
  padding: 20px; /* 目次の内側の余白 */
  text-align: center; /* テキストの中央揃え */
  border: solid 1px #ccc; /* 目次の境界線 */
}

.mokuji {
  font-size: 1.2em; /* 目次のタイトルのフォントサイズ */
  font-weight: bold; /* 目次のタイトルの太字 */
  color: #333; /* 目次のタイトルの色 */
}

#toc ol {
  margin-top: 10px; /* 目次項目の上部のマージン */
  margin-bottom: 0; /* 目次項目の下部のマージン */
  padding: 0; /* 目次項目の内側の余白 */
  text-align: left; /* テキストの左揃え */
}

#toc ol li {
  font-size: .95em; /* 目次項目のフォントサイズ */
  margin-bottom: 1em; /* 目次項目の下部のマージン */
  list-style-position: inside; /* リストアイテムのマーカーの位置 */
  color: #000070; /* 目次項目の色 */
  border-bottom: 1px dotted #ddd; /* 目次項目の下線 */
}

#toc ol a {
  text-decoration: none; /* リンクの下線を削除 */
  color: #000070; /* リンクの色 */
}

#toc ol a:hover {
  opacity: .5; /* マウスオーバー時のリンクの透明度 */
}

#toc ol>ol {
  margin: 0; /* ネストされたリストのマージン */
  padding-left: 15px; /* ネストされたリストの左側のパディング */
}

#toc ol>ol li {
  font-size: 1em; /* ネストされたリストのフォントサイズ */
  font-weight: 500; /* ネストされたリストの太字 */
}

@media (max-width: 599px) {
  #toc {
    margin: 30px 0; /* モバイルデバイス用の目次のマージン */
  }
}

下記の画像のようなデザインになっていればOK!

目次完成イメージ

まとめ

【プラグインなし】WordPressの記事ページにシンプルな「目次」を表示させる方法まとめ

今回は、プラグインなしでWordPressの投稿記事ページにシンプルな目次を表示させる方法をご紹介していきました。

現場でもサイト制作のほとんどがWordPressをカスタマイズして制作されているのでHTML・CSSの知識がある程度ついてきたらWordPressの勉強はオススメです。

仕事の現場でサッと使える!デザイン教科書

これからWebデザイナー・エンジニアになりたい方は僕が完全未経験の独学期間にはやく知りたかった【厳選】現役Webデザイナーがおすすめする独学初期に知りたかった読んで良かった本まとめでおすすめの本をご紹介していますので、ご参考にしていただければと思います。

以上、「【プラグインなし】WordPressの記事ページにシンプルな「目次」を表示させる方法」でした。

  • この記事を書いた人
rdotblog_profile

dot

関西出身の29歳 R.BLOG(アールドットブログ)では、完全未経験から独学でWebデザイナーへ転職し、現役Webデザイナーとして日々学んだ(Webデザイン・プログラミング・Webマーケティング・SEOなど)タメになる情報を発信していきます。

-Blog, WordPress