サイト内検索
Cocoon2.4.4 目次の見出しテキストを「H見出し内のタグを有効にする」と同期について | 要望 | Cocoon フォーラム

Topic starter2022年6月24日 10:50
いつもお世話になっております。
Cocoon2.4.4アップデートにて、下記要望を受けて、見出し内タグの内容が「目次」本体でも有効になるように改善頂いたと認識しております。
私が運営しているサイトでは、Cocoon2.4.4以前から、h2,h3等の見出し構成に、サイト内の他ページへのリンクを<a>タグで設定しておりました。
(従来からかなりのページに見出しリンク設定をしていることから、v2.4.4をそのまま使用しつつ、目次機能を以前のように機能させるには、多数のページの構成を見直す必要があり苦慮しております)
できるだけ、アップデートを承継したスペックを守ってサイト運営を続けたいのですが、その場合、次のような設定は、どのように実現するの現実的でしょうか?
1.見出しh2,h3に<a>タグでリンクを貼って、飛べるようにする
2.上記1.を実現したまま、「目次」本体では、従来通り、同じページ内の所定の見出しまでスクロールできる
例えば、弊方のサイトでいえば、下記URLのページが典型的な例となります。
その他、参照したトピックは下記の通りです。
[解決済] h2、h3にリンクを設定してCocoonの目次機能を設定すると、h2、h3のリンクが効かなくなります。
[解決済] hタグに設定された特定のクラスを目次から除外する
[解決済] 目次をカスタマイズしたい。H2を太字にしてH3以下を左揃えしたい
[解決済] 目次を表示させると、見出しブロック内の文字装飾や改行が無くなる
----------------------------------------------
サイト名:ビジネスハック 戦略・経営・会計
サイトURL: https://management-accounting.biz
ホームURL: https://management-accounting.biz
コンテンツURL:/wp-content
インクルードURL:/wp-includes/
テンプレートURL:/wp-content/themes/cocoon-master
スタイルシートURL:/wp-content/themes/cocoon-child-master
親テーマスタイル:/wp-content/themes/cocoon-master/style.css
子テーマスタイル:/wp-content/themes/cocoon-child-master/style.css
スキン:/wp-content/themes/cocoon-master/skins/silk/style.css
WordPressバージョン:6.0
PHPバージョン:8.0.18
ブラウザ:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
サーバーソフト:Apache
サーバープロトコル:HTTP/1.0
エンコーディング:none
言語:ja,en;q=0.9,en-US;q=0.8
----------------------------------------------
テーマ名:Cocoon
バージョン:2.4.5.4
カテゴリ数:15
タグ数:7
ユーザー数:1
----------------------------------------------
子テーマ名:Cocoon Child
バージョン:1.1.1
style.cssサイズ:717バイト
functions.phpサイズ:203バイト
----------------------------------------------
Gutenberg:1
AMP:1
PWA:0
Font Awesome:5
Auto Post Thumbnail:0
Retina:1
ホームイメージ:/wp-content/uploads/2020/05/ff5c235429aec6df5b72eb12cfa477a9.jpg
----------------------------------------------
ブラウザキャッシュ有効化:1
HTML縮小化:0
CSS縮小化:0
JavaScript縮小化:0
Lazy Load:1
WEBフォントLazy Load:1
----------------------------------------------
利用中のプラグイン:
Advanced Editor Tools (previously TinyMCE Advanced) 5.6.0
Akismet Anti-Spam 4.2.4
Aurora Heatmap 1.5.4
Category Order and Taxonomy Terms Order 1.6.1
Cocoon Color Palette 1.0.1
Code Snippets 3.1.1
ConoHa WING コントロールパネルプラグイン 1.0
ConoHa WING 自動キャッシュクリア 1.0.0
Contact Form 7 5.6
Edit Author Slug 1.8.4
Embed Any Document 2.7.1
EWWW Image Optimizer 6.6.0
Google XML Sitemaps 4.1.5
Jetpack 11.0
MathJax-LaTeX 1.3.11
Regenerate Thumbnails 3.1.5
SiteGuard WP Plugin 1.6.1
Wordfence Security 7.5.11
WP-Optimize - Clean, Compress, Cache 3.2.6
WP Multibyte Patch 2.9
----------------------------------------------
2022年6月24日 11:59
[Cocoon設定]→[目次]→H見出し内のタグを有効にする
この時、見出しタグ中のaタグは除外する必要があるかと。
●現象
見出しにaタグを用いると、目次のリンクが入れ子になってしまいます。
本文の見出しHTML例、<h2><a href=a>見出し</a><h2>
目次のHTML例、<a href=#toc2><a href=a>見出し</a></a>
Chromeのデバッカーで見ると、以下のように目次のアンカーリンクが無効になっています。
<a href=#toc2></a>
<a href=a>見出し</a>
わいひら 件のいいね!
2022年6月24日 17:47
BizHさん
もし、自分で対処するとしたら、ですが。
あちらを立てればこちらが立たず、ということもあるかもしれませんので、2通りの方法を書いてみます。
(私には、なかなか良い方法が思いつかず・・・本当は$htmlから取り除きたかったですが、上手くマッチせず・・・💧、稚拙な方法かもしれないです。)
①以前と同様に、見出しのHTMLを目次には反映させない場合
以下の範囲を、子テーマのfunctions.phpへコピーする
https://github.com/yhira/cocoon/blob/922e9f3666eaabaf8d3999f3a55ff712d2cb1771/lib/toc.php#L35-L180
そして、以下の部分を削除する
https://github.com/yhira/cocoon/blob/922e9f3666eaabaf8d3999f3a55ff712d2cb1771/lib/toc.php#L127-L129
②見出しのaタグを取り除いて、目次に反映させる場合
以下の範囲を、子テーマのfunctions.phpへコピーする
https://github.com/yhira/cocoon/blob/922e9f3666eaabaf8d3999f3a55ff712d2cb1771/lib/toc.php#L35-L180
以下の間(128~129行目の間)に、
https://github.com/yhira/cocoon/blob/922e9f3666eaabaf8d3999f3a55ff712d2cb1771/lib/toc.php#L128-L129
以下を追加する
$text = preg_replace('/<a.*?>(.*?)<\/a>/', "$1", $text);
という感じではいかがでしょうか。
上記で上手くいけば良いですが。
わいひら 件のいいね!
2022年6月24日 19:38
mk2さんの②案をそのまま使わせていただいて、修正してみました。
以下のファイルでアップデートして試してみるとどうなりますでしょうか。
------------------------------------------------
https://github.com/yhira/cocoon
開発中の最新ファイルをダウンロードする場合は、上記ページのダウンロードボタンからzipファイルをダウンロードしてください。
WordPressでの手動アップデート方法はこちら
https://wp-cocoon.com/manual-update-of-cocoon-theme/
------------------------------------------------
2022年6月24日 20:03
ご対応いただき、ありがとうございます。
私の環境では、目次からaタグが取り除かれて、上手くいっているようです。
BizHさんもご確認お願い致します。
おそらくBizHさんの環境の方が、複雑な見出しが設定されていますので。
わいひら 件のいいね!
Topic starter2022年6月25日 09:38
追伸
ちなみに、目次の装飾を楽しませて頂いておりますページの代表例は下記のとおりです。
見る方によっては、いささかビジーかと存じますが、私にとっては大満足の仕様のひとつになりました。
ブログ更新のモチベーションが上がります。
m(_ _)m
わいひら 件のいいね!