Cocoonフォーラム

サイト内検索
書き込みの前に以下の3点をご確認ください。
  1. 1つのトピックにつき1つの質問を書き込んでください
  2. 不具合・カスタマイズ対象ページのURLを提示高速化を無効にしてください
  3. 該当部分のキャプチャ・環境情報とともに書き込んでいただけると助かります

何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。

不具合・カスタマイズ対象ページのURL:

相談内容:

不具合の発生手順:

解決のために試したこと:

※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:

※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。

環境情報の取得方法はこちら。
https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
https://wp-cocoon.com/theme-trouble/

フォーラム利用ガイドリンク

  1. フォーラムガイドライン
  2. よくある質問と答え(FAQ)
  3. サポート対象外のケース
  4. 原因不明の不具合用トラブルシューティング
  5. トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw
  6. 真っ白画面でのエラーメッセージの確認方法
  7. ブラウザ環境チェックツール
  8. Cocoonカスタマイズ依頼

フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。

目次で分割ページの場合、分割した目次で...
 
共有:
通知
すべてクリア

[解決済] 目次で分割ページの場合、分割した目次でなく、全目次を表示する機能

7 投稿
2 ユーザー
4 Reactions
126 表示
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3815
トピックスターター  

----------------------------------------------
テーマ名:Cocoon
バージョン:2.8.7.2
カテゴリー数:18
タグ数:124
ユーザー数:1
----------------------------------------------

●関連投稿

https://wp-cocoon.com/community/postid/36734/


●参考

XWRITEは全て表示、分割表示切り替えで可能なようです。

https://xwrite.jp/man_custom_setting_index/


●変更前

以下のように投稿を分割ページとした。
このとき、目次は各分割ページ単位でしか表示されいない。

<!-- wp:heading -->
<h2 class="wp-block-heading">1</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">1-1</h3>
<!-- /wp:heading -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">1-1-1</h4>
<!-- /wp:heading -->

<!-- wp:nextpage -->
<!--nextpage-->
<!-- /wp:nextpage -->

<!-- wp:heading -->
<h2 class="wp-block-heading">2</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">2-1</h3>
<!-- /wp:heading -->

<!-- wp:nextpage -->
<!--nextpage-->
<!-- /wp:nextpage -->

<!-- wp:heading -->
<h2 class="wp-block-heading">3</h2>
<!-- /wp:heading -->

●変更後

Cocoon設定→[目次]のオプションで分割ページ単位の目次か、全目次か切り替えを可能とする。
分割ページでも全目次を表示する。
このとき、目次の各章をクリックすると、各分割ページにジャンプする。


●コード

既存のlib\toc.phpの関数get_toc_tagを変更します。

  • $expanded_contentは分割ページ単位なので、全文を取得させます。
  • 取得した全文から目次を既存と同じように組み立てます。
  • そのとき、各章のリンクを、分割ページの章に変更とします。

元のコードと添付したコードの差分を見て頂けると変更点が分かります。
※添付コードは設定ページの代わりに、$mode=false、trueかで切り替わるようになっています。

https://notepad.pw/share/YNlwWYk2D9oCWS6mb7zZ



   
わいひら reacted
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3815
トピックスターター  

●追記

見出しの切り出し部分ですが、CocoonはH1も対象ですが、見直したらコードはH2からでした。
検証はしていないので、その点は確認願います。



   
わいひら reacted
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3815
トピックスターター  

●修正

母体の関数get_toc_tagに合わせ、細かい修正をしました。

  • H1も対象
  • 分割ページ時の配列headersを元コードに合わせ、HTMLタグ付きのみとする

https://notepad.pw/share/a3Qboyvyp8JgGp1aJQgF



   
わいひら reacted
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 8年前
投稿: 17978
 

ご提案に加えてコードまでいただきありがとうございます。
早速コードの方を確認させていただきます。



   
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 8年前
投稿: 17978
 

投稿者:: @chu-ya

母体の関数get_toc_tagに合わせ、細かい修正をしました。

  • H1も対象
  • 分割ページ時の配列headersを元コードに合わせ、HTMLタグ付きのみとする

https://notepad.pw/share/a3Qboyvyp8JgGp1aJQg

こちらのコードをget_toc_tagと置き換えて試してみました。
https://github.com/xserver-inc/cocoon/commit/093d6b9f78fa61da052eb16a198831c9e3b94062

chu-yaさんの環境では、例えば当トピック冒頭の投稿ソースコードで試したとして、目次のリンク先は2-1(添付画像)は#toc5、となっているけど実際2ページ目に跳んで2-1の見出し内のspanのidはid="toc5"になっていますでしょうか。
僕の環境では、id="toc2"になっていたようでページは移動するものの見出しにまでは跳ばない状態でした。
もし僕のコードの置き換え方が間違っていて、僕の環境だけおかしな状態だったとしたら申し訳ないです。
一応、ページ遷移先で見出しに跳ぶように修正しておきました。
https://github.com/xserver-inc/cocoon/commit/a054806b9610d490946114f23a7fe6cfe10dbb11

あと現在見ているページでもページ遷移しているようだったので、現在見ているページはページ遷移しないように修正しておきました。
https://github.com/xserver-inc/cocoon/commit/15f880e84d9fdbb4925255a2e210285aedc87cc8

まだ簡単な動作確認しかしていないのですが、もう遅いので、一旦寝て明日もう一度動作確認してみます。不具合があったらすいません。



   
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3815
トピックスターター  

----------------------------------------------
テーマ名:Cocoon
バージョン:2.8.8
カテゴリー数:18
タグ数:124
ユーザー数:1
----------------------------------------------

A

僕の環境では、id="toc2"になっていたようでページは移動するものの見出しにまでは跳ばない状態でした。
もし僕のコードの置き換え方が間違っていて、僕の環境だけおかしな状態だったとしたら申し訳ないです。

私も同じでした。申し訳なく。
言われる通り、目次は全ページの通し番ですが、肝心な見出しはページ毎の通し番となってました。

A

あと現在見ているページでもページ遷移しているようだったので、現在見ているページはページ遷移しないように修正しておきました。

そうですね、私の作りだとページロードしてしまいますね。


「目次」ウィジェットも動作確認したら問題ないようです。
本件をクローズとします。



   
わいひら reacted
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 8年前
投稿: 17978
 

ご確認いただきありがとうございます。
頂いたコードのおかげで、マルチページ目次機能を追加することができました。感謝申し上げます!



   
共有:

問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。

また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。

「いいね!」機能はフォーラム登録者のみが利用できる機能です。

CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。

フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。

最近の書き込みはこちら。

詳細なカスタマイズ依頼をするならこちら。

タイトルとURLをコピーしました