WordPressプラグイン「Table of Contents Plus」のカスタマイズ。

2020年03月03日 03時03分 正午の月齢:8.9  月名:九日月  潮汐:小潮 月齢:8.9[九日月] 潮汐:小潮
4年前に投稿 | WordPress | コメントはありません

2分ぐらいで読めます。

いくつか見出しを設定したときに自動的に目次リストを作ってくれるプラグイン「Table of Contents Plus」をたまに使っているのですが、久しぶりに使っているページを見たらCSSがうまく適用されていないことがわかりました。

これといって何もした覚えがなかったのでどうも腑に落ちなくて調べてみると、仕様変更か何かわからないのですが、もともとclass指定だった部分がidになっています。目次の部分のdiv要素が「<div class="toc_container">」ではなく「<div id="toc_container">」で始まっていました。いったい、いつからなんだろ…昔は間違いなくclassだったと思うんだけど。いや自信はないです。

CSSの修正だけで済めば別にどうってことないのですけど、上級者向けの設定で「ホームページを含める」の「ホームページ上の条件を満たす項目の目次を表示」にチェックを入れると、目次付きの記事が複数連なって出てくるわけです。「ひとつのidはページ内で1度しか使えない」ことから、複数の記事が載っているindexページにおいてはidを使われると実によろしくない。

そんなわけで、プラグインをいじって、idではなくclassを吐き出すようにしてやりました。

toc.phpの1524行目、

$html = '<div id="toc_container" class="' . $css_classes . '">';

$html = '<div class="toc_container" class="' . $css_classes . '">';

にします。

さらにデフォルトのCSS指定部分(1091、1106、1110、1112、1114、1116、1118行目の計11か所)にある

div#toc_container

div.toc_container

にしてやります。

これで同一idが同一ページに複数現れるのを阻止できると思います。最初からclass指定してくれればこんな手間いらないんですけどねー。

古い記事・新しい記事

古い記事 [2019年09月29日]
新しい記事 [2020年06月01日]

コメントはありません

ごめんなさい、コメントフォームは閉鎖しています。

Translate »