Easy Table of Contentsのバグ?サイドバーの目次がトップページ(ホーム)にも表示されてしまう問題。

Easy Table of Contentsトップに目次が表示される_eyecatch

WordPressの目次プラグインと言えば「TOC+」と「Easy Table of Contents」が有名ですが、後者のお話です。

ウィジェットでサイドスクロールバーに目次を追加したのですが、トップページにも目次が表示されていました。

トップページには見出し(Hタグ)なんて無いのですが、どうもトップページの最終ページにある記事の目次を出力してしまっているようです。

同じ症状で解決して下さっている方がおられたのでご紹介。助かりました。

プラグイン内のコードが原因で目次作成の挙動がおかしくなるようです。

EasyTOCプラグインでトップページに目次が表示される

プラグインをインストールして有効化。
Easy Table of Contentsトップに目次が表示される_001サイドバー追尾にプラグインの専用ウィジェット「目次」を設置しました。

Easy Table of Contentsトップに目次が表示される_002

トップページに表示される目次

記事ページはうまく動作していたのでよしよしと思っていました。
が、トップページにも関係のない記事ページの目次が表示されてしまいました。

表示されるページとされないページがあり、作成される目次はトップページの最後に出力されている記事のもののようです。

キャッシュや他のプラグインとの干渉も疑ったのですが、Easy Table of Contents特有のバグ、というか仕様のようです。

対処法:プラグインのコードを編集する

以下のサイト様が役に立ちました。無駄な時間を取らずに済み助かりました。

プラグイン内の「class.widget-toc.php」内のコードの記述に問題があるようです。

class.widget-toc.phpの編集

FTPソフトで直接編集しても良いですが、Wordpressの場合はダッシュボードから編集できますのでこちらで行います。

プラグイン > プラグインエディター

に進みます。
Easy Table of Contentsトップに目次が表示される_003
画面右上の「編集するプラグインを選択」で「Easy Table of Contents」を選択。
選択をクリックし、プラグインファイルの中から「class.widget-toc.php」を選ぶ。

139行目をコメントアウトし、140行目に新しいコードを追加する。

//if ( is_404() || is_archive() || is_search() || ( ! is_front_page() && is_home() )  ) return;
if ( is_404() || is_archive() || is_search() || is_front_page() || is_home() ) return;
Easy Table of Contentsトップに目次が表示される_004

easy-table-of-contents/includes/class.widget-toc.phpを編集

こんな感じです。

404ページ、アーカイブページ、ページ内検索結果ページには元々出力されないようになっていますが、その次の条件分岐が問題です。
!is_front_page()&&is_home():フロントページではなく、かつホームページの場合に出力しない。

ポイント

・フロントページ:トップページ
・ホーム:投稿一覧が出力されるページ

WordPressのテーマではフロントページ=ホームになっていることが多く、この条件に当てはまらないためトップページにも目次が出力されてしまうということですね。

コードを編集したら「ファイルを更新」を押してトップページを確認します。

Easy Table of Contentsトップに目次が表示される_005

トップページに目次が出力されなくなった

キャッシュなどを削除してから確認するとトップページに表示されていた目次が表示されなくなりました。

まとめ

Easy Table of Contentsを導入した際にトップページにも目次が表示されてしまう問題の解決方法でした。

ん~通常トップページに目次を表示することは少ないと思うので、コードを変えた方が良いと思うんだけれど…
プラグインのアップデートの度に編集したファイルが上書きされて元に戻ってしまうはずなので、覚えておかなければなりません…

自分が遭遇した問題を詳しくネット上に拡散して下さる方がおられると無駄な時間を割かなくて済みます。今回も助けられました。

キャッシュを導入したりプラグインを増やすと問題個所が特定しにくくなりますね。

-Wordpress
-

© 2021 ソロ学