「メイド・イン・ヘブン」スキン適用中

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カスタマイズ依頼

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

タイムラインブロックの順番を変更できる...
 
共有:
通知
すべてクリア

タイムラインブロックの順番を変更できるようにして欲しい

9 投稿
3 ユーザー
6 Likes
2,076 表示
 kao
(@kao)
New Member
結合: 5年前
投稿: 3
Topic starter  

タイムラインブロックのアイテム数を増やすと一番下に追加されていきますが、上や中間に追加したい時がありますので、順番を変更できるようにして欲しいです。


   
引用
わいひら
(@yhira)
Illustrious Member Admin
結合: 6年前
投稿: 16450
 

そのような動作をするブロックプラグインをご存知でしょうか?
よろしければ動作の参考にさせていただきたいので、そのプラグイン名を教えていただければと思います。
※実装できるかどうかは、参考コードがあればそれを見てやってみないと分かりません。


   
返信引用
ろこ
(@lococo)
Prominent Member Registered
結合: 6年前
投稿: 830
 

CocoonのタイムラインブロックはRangeControlで指定される数に合わせてInnerBlocksのtemplateを動的に増減させている形だと思うのですが、InnerBlocksのtemplateを動的に変更するためにはtemplateLockを'all'にする必要があります。
そして、templateLockを'all'にすると子ブロックは動かせない仕様になっています。

上や中間に追加したい時があります

一般的なブロックのように既存のブロックの間に追加したり、順番を入れ替えられるようにするには、RangeControlによるtemplate増減をなくし、templateLockをfalseにするしかないと思います。


   
edit and わいひら reacted
返信引用
ろこ
(@lococo)
Prominent Member Registered
結合: 6年前
投稿: 830
 

一応、Gutenbergの設計が分かるコード部分も貼っておきます。

https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/inner-blocks/index.js

https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/block-list/block.js

templateLock === 'all'

となっていないと、最初に当てはめられるtemplateで固定されてしまいます。

一方、

'all' !== templateLock

でないと、ブロックを動かしたり間に入れたりすることができなくなります。

 

withFilters( 'editor.BlockListBlock' )

フックがあるものの、最終的なブロックの挙動はapplyWithSelectとフィルターより後で決定されるため、カスタマイズで変更することもできません。


   
edit and わいひら reacted
返信引用
わいひら
(@yhira)
Illustrious Member Admin
結合: 6年前
投稿: 16450
 

ありがとうございます!

RangeControlによるtemplate増減をなくし、templateLockをfalseにするしかないと思います。

ということは、レンジコントロールを使用しないで、別のコントロールを利用して、増減する仕組みを自前で書かなければならないということですよね?
ちょっと僕のプログラミング能力的に荷が重いかも…。


   
返信引用
ろこ
(@lococo)
Prominent Member Registered
結合: 6年前
投稿: 830
 

レンジコントロールを使用しないで、別のコントロールを利用して、増減する仕組みを自前で書かなければならないということですよね?

templateLockをfalseにすれば、templateはブロック追加時に設定されている初期値で固定されます。
そうなると、一般的なブロック追加のように子ブロックを1個ずつ手動で追加していく形になります。

もし、RangeControlによるtemplate増減のような機能を持たせたいのであれば、
例えば、テーブルブロックのように増減をコンポーネントベースにするとか、親ブロックから全子ブロックの情報を取得しつつ制御するとか…
何か別の方法で実装するしかありませんが、私自身そこまでは実装したことがないので具体的な提案はできません。


   
edit and わいひら reacted
返信引用
わいひら
(@yhira)
Illustrious Member Admin
結合: 6年前
投稿: 16450
 

templateLockをfalseにして試してみたのですが、全くRangeControlが反応しなくなるんですね。

>kaoさん
だとした、やはり僕の能力からいって、先日書いた手本となるプラグインがないと多分難しいと思います。

というか、僕の場合見たとしても厳しいかも。


   
返信引用
 kao
(@kao)
New Member
結合: 5年前
投稿: 3
Topic starter  

わいひら様、ロコ様ご検討いただき誠にありがとございます。
順番の変更昨日は無しで、一番上に追加することも難しいでしょうか?


   
返信引用
わいひら
(@yhira)
Illustrious Member Admin
結合: 6年前
投稿: 16450
 

そうだったとしても、自前で新たに仕組みを用意しないとできないと思います。


   
返信引用
共有:

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

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

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

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

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

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

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

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