【目次のカスタマイズ方法】サイドバー目次にハイライトを追加する方法

もしもし!かめぽこです!🐢
ブログを読んでいただき、ありがとうございます!

目次をカスタマイズして見やすくしたい!

目次が見やすくなるとユーザーも格段に読みやすくなるので、カスタマイズ方法を知りたい方は多いのではないでしょうか?

今回は、テーマSWELLを用いた目次のカスタマイズ方法を解説します。

今回作成するのはこちら。

サイドバーの目次ハイライトです。

こちらを追加することで、ユーザー自身が今どこの見出しを読んでいるのかをパッと把握できます

少しでも読みやすいブログを作りたい方は、本記事をぜひ参考にしてください。

当ブログで使用しているテーマ

当ブログでは、テーマ「SWELL」を使用しています。

本記事の目次カスタマイズは、テーマSWELLを使っている方向けの記事なので、まだ無料テーマを使っている方は乗り換えてみてはいかがでしょうか?

値段は少々お高いですが、価値はそれ以上にあると思います!

こちらの記事ではSWELLの導入方法について詳しく解説しているので、失敗したくない方は合わせてご覧ください!

目次

目次をサイドバーに追加する方法

まずは、目次をカスタマイズする前にサイドバーに追加する方法を解説します。

やり方はたったの2ステップです。

2ステップ
  1. ウィジェットに移動
  2. 目次を追加

1つずつ解説します。

STEP
ウィジェットに移動

まずはウィジェットを開きましょう。

WordPressの管理画面から「外観」→「ウィジェット」と進みます。

STEP
目次を追加

続いて、目次を追加していきます。

ウィジェット一覧から「[SWELL]目次」を選択し、「追従サイドバー」にドラッグ&ドロップします。

以上でサイドバーに目次が表示されるようになります。

目次のカスタマイズ方法

続いて、本題の目次のカスタマイズ方法を解説します。

こちらはコードを編集するので、慎重に行ってください。

編集する前にバックアップをとることをおすすめします。

では、目次のカスタマイズをしていきましょう。

やり方は以下の通りです。

目次カスタマイズ方法
  1. テーマのための関数(functions.php)を編集する
  2. スタイルシート(style.css)を編集する

1つずつ解説します。

参考にさせて頂いた記事
IT業界の住人 ぺん様

①テーマのための関数(functions.php)を編集する

まずは、functions.phpにコードを追加していきます。

STEP
コードをコピー

まずは追加するコードをコピーします。

function swell_toc_highlight() {
  echo <<< EOM
  <script>
  class toc_highlight {
    init(){
      this.elem = document.querySelectorAll('.widget_swell_index a');
      this.elem2 = document.querySelectorAll('.-modal a');
    }
    update(){
      if(this.elem === null) {
        return 0;
      } else {
        for (let i = 0; i < this.elem.length; i++) {
          const y = document.documentElement.clientHeight;
          const a = document.getElementById( this.elem[i].hash.slice(1) ).getBoundingClientRect().top;
          if( y > a ){
            this.elem[i].classList.add("current");this.elem2[i].classList.add("current");
              if ( i>0 ){
                this.elem[0].classList.remove("current");this.elem2[0].classList.remove("current");
                this.elem[i-1].classList.remove("current");this.elem2[i-1].classList.remove("current");
              }
          } else {
            this.elem[i].classList.remove("current");this.elem2[i].classList.remove("current");
          }
        }
      }
    }
  }
  var toc=new toc_highlight();
  window.addEventListener('DOMContentLoaded', function(e){ toc.init(); });
  window.addEventListener('scroll', function(e){ toc.update(); });  
  </script>
  EOM;
  }
add_action( 'wp_print_footer_scripts', 'swell_toc_highlight' );

こちらのコードをコピーしましょう。

右上の「Copy」を押すとクリップボードのコピーされます。

STEP
テーマファイルエディターを開く

続いて、テーマファイルエディターを開きます。

WordPressの管理画面から「外観」→「テーマファイルエディター」と進みます。

STEP
functions.phpに貼り付け

続いて、コピーしたコードをfunctions.phpに貼り付けます。

編集するテーマが「SWELL CHILD」になっていることを確認してから貼り付けましょう。

テーマファイルから「テーマのための関数(functions.php)」を選択し、コードを貼り付けて「ファイルを更新」します。

※コードは26行目以降に貼り付けてください。

エラーが発生する場合

場合によっては、以下のようなエラー画面が表示されることがあります。

僕もこの画面に悩まされたのですが、プラグインが原因になっているかもしれません。

プラグイン「SiteGuard」を導入している方は、以下の方法を試してみてください。

STEP
管理ページアクセス制限を開く

まずは、SiteGuardの管理ページアクセス制限を開きます。

WordPressの管理画面から「SiteGuard」→「管理ページのアクセス制限」と進みます。

STEP
制限をOFFにする

続いて、制限をOFFに設定します。

画面のように制限を「OFF」に設定し、「変更を保存」をクリックします。

これでもう一度functions.phpを更新してみてください。

エラーが無くなるのではないでしょうか。

本記事のコード編集が全て終わったら、また「ON」に設定し直しておきましょう。

②スタイルシート(style.css)を編集する

続いて、スタイルシートにコードを追加していきます。

STEP
コードをコピー

まずは以下のコードをコピーします。

a.p-toc__link.current {
  background-color: #ddffd6 !important;
}
STEP
スタイルシートに貼り付け

続いて、コピーしたコードをスタイルシートに貼り付けます。

テーマファイルから「スタイルシート(style.css)」を選択し、コードを貼り付けて「ファイルを更新」します。

※コードは15行目以降に貼り付けてください。

以上で目次のカスタマイズは終了です。

エラーが発生してSiteGuardの設定を変更した方は、戻すのを忘れないようにしましょう。

ハイライトの色を変更する方法

ハイライトの色は自由に変更可能です。

現在は薄緑色のハイライトになっていると思いますが、以下の画面の「#〇〇」を変更すると色が変わります。

画像編集ツールのCanvaなどを使うと、好きな色を簡単に調べることが出来ます。

無料で使えて出来ることも豊富なので、ぜひ試してみてください。

色の調べ方はこんな感じ。

ちなみに、こちらの画像もCanvaで編集してます。

※エラーが発生して、プラグイン「SiteGuard」の設定を変更した方は忘れないようにしましょう。

まとめ

ブログを読んでいただき、ありがとうございました!

今回は、テーマSWELLを用いた目次のカスタマイズ方法を解説しました。

こちらを行うことでユーザービリティが格段に向上するので、まだ試していない方は絶対やりましょう。

当ブログで使用しているテーマ

先程紹介しましたが、有料テーマ「SWELL」。

国内人気No.1のシンプルかつ超有能なテーマです。

興味がある方はぜひチェックしてみてください。

以下の記事でSWELLの導入方法について詳しく解説しているので、失敗したくない方は合わせてご覧ください!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

かめぽこ🐢
2001年愛知県出身。

「自由」を求めて冒険中です。
「皆、船に乗れー!!出航だーっ!!!🏴‍☠️」

目次