サイト内検索
Cocoonフォーラム
書き込みの前に以下の3点をご確認ください。
何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。
不具合・カスタマイズ対象ページのURL:
相談内容:
不具合の発生手順:
解決のために試したこと:
※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。
環境情報の取得方法はこちら。
→ https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
→ https://wp-cocoon.com/theme-trouble/
フォーラム利用ガイドリンク
- フォーラムガイドライン
- よくある質問と答え(FAQ)
- サポート対象外のケース
- 原因不明の不具合用トラブルシューティング
- トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw)
- 真っ白画面でのエラーメッセージの確認方法
- ブラウザ環境チェックツール
- Cocoonカスタマイズ依頼
フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。
Topic starter
2019年3月18日 01:32
わいひら様、アップデートありがとうございます。
https://wp-cocoon.com/bugs-and-wants/
こちらの記事の「ツールボタンをドロップダウン化したい」にて、
今のところやり方は、よくわかってない
とありますが、Gutenberg公式のテーブルブロックがサンプルとして参考になるかと思いますがいかがでしょうか。
https://wp-cocoon.com/cocoon-blocks-response-status/
また、「今後特にやりたいこと」には挙げられていなかったのですが、可能であればCocoon用のレイアウトブロックも対応していただければ幸いです。
こちらも公式のカラムブロックとそれをフォークしたようないくつかのプラグインが参考になるかと思います。
pono reacted
2019年3月18日 20:49
Gutenberg公式のテーブルブロックがサンプルとして参考になるかと思いますがいかがでしょうか。
これは、多分これを利用していると思うのですが、いまいち実装してみても動作しなくて。
https://wordpress.org/gutenberg/handbook/designers-developers/developers/components/dropdown-menu/
こんな感じでやってみても、ボタンが表示すらされなかったりして。
https://notepad.pw/code/f3r2542c3
※突貫で書いたコードなので余計なコードも多少入っています
何か使い方自体間違っているんでしょうかね。
2019年3月18日 20:51
こちらも公式のカラムブロックとそれをフォークしたようないくつかのプラグインが参考になるかと思います。
例えばどのプラグインでしょうか?
よろしければURLをいただければ幸いです。
2019年3月18日 20:54
また、「今後特にやりたいこと」には挙げられていなかったのですが、可能であればCocoon用のレイアウトブロックも対応していただければ幸いです。
これも以前、作ろうと思って以下のように何も考えず作ってはみました。
https://notepad.pw/code/zjnn4wl6
けれどこれだと、<InnerBlocks />を2つ入れると、それぞれ別のものが表示されと思っていたのですが、同じものが表示されてしまうんですよね。
ここら辺の解決方法がまだよくわかっていません。というか調べる時間がなくてまだ調べていません。
2019年3月18日 20:55
というか、公式のカラムブロックがあるのでいいかなと思って、暫く放置しています。
公式のカラムブロックではダメなのでしょうか?
Topic starter
2019年3月19日 01:04
わいひら様、返信ありがとうございます。
まずドロップダウン化の方ですが、示していただいている『DropdownMenu』を公式でも利用しているようで、サンプルコードと比較した感じだと、
https://github.com/WordPress/gutenberg/blob/master/packages/block-library/src/table/edit.js
このあたりが参考になるのではないかと思いました。
同様に公式カラムブロックのコードは以下で、
https://github.com/WordPress/gutenberg/tree/master/packages/block-library/src/columns
プラグインだと例えば、
https://wordpress.org/plugins/variable-column-block/
などがありました。
Cocoon用にカラムブロックを用意する予定とのことだったので、ブロックも可能な限りCocoonのもので統一しようかと考えていたのですが、カラムは公式ブロックのみならそれでも私は構いません。
2019年3月19日 20:39
リンクありがとうございます。
DropdownMenuですが、僕も同様のことを試したことあるのですが、うまくいきませんでした。
僕もこれに関しては、以前からトータルで十数時間は試しているのですが、ダメでした。
これは、僕自身JSXを始めたのが、Gutenbergエディター組み込み後のWordPress5.0以降で、現在行っているプログラミング自体付け焼刃のものだからだと思います。
しっかりと書籍を購入して、仕様時手をしっかりと理解しないと、できないような気もします。
これ自体、何時間かやれば必ずうまくいくというのであれば、やるのですが、何時間やってもうまくいかない可能性があるので、ちょっとこれは良いサンプルコード待ちをしようと思います。
「これをやればうまくいく」的なものがあればいいのですが、僕も他に仕事があるので、トライ&エラー時間があまりなくて。
2019年3月19日 20:48
Gutenberg Variable Columnsプラグインも見てみました。
これと同様に、カラムの中にテキストしか挿入しないものであれば、今も作成できるかもしれません。
<InnerBlocks />を入れて、カラム内にブロックを入れようと思っているからダメだったり。
調べても、1つのブロック内に複数のInnerBlocksはできないっぽいです。
https://wordpress.org/support/topic/multiple-inner-blocks/
それを、うまく動作させるには、「公式のカラムブロック」みたいなことをやればいいとは思うのですが、それだったら「公式のもの」でいいのかなと思ってしまいました。
テキストだけで良いのであれば、多分できると思います。
けれど、「リストは入れられないの?」とか問い合わせが来そうで、どうしたものか…と思って現在に至る感じです。
2019年3月19日 21:42
Gutenbergのツールボタンですが、そのプラグインのおかげで、様々な表現ができることはわかっています。
https://technote.space/add-richtext-toolbar-button
なんで、このプラグインのような表現を目指して情報収集出来ればと思います。
※プラグインコードを見てみたのですが、コンパイル後のコードしか見つけられなかったので、正直よくわからなかった…。
でも、できるということが分かっただけでもありがたい。
Topic starter
2019年3月20日 07:23
わいひら様、お忙しい中ありがとうございます。
私もJSXは初心者なのですが、
https://wordpress.org/gutenberg/handbook/designers-developers/developers/components/dropdown-menu/
https://github.com/WordPress/gutenberg/blob/master/packages/block-library/src/table/edit.js
を参考に、Create Guten Block Toolkitを用いて試してみたところ、ドロップダウンは表示されました。
わいひら様は
https://notepad.pw/code/f3r2542c3
にあるようなコードで試したとのことですが、「ひとまずドロップダウンを表示させる」という観点から言えることは、ひとつはコンポーネントを適切に扱うことです。
コンポーネントが正しく構造化されていないと表示が崩れたりするので、丁寧に記述されている公式の各ブロックを参考に、今回の場合は
<Fragment><DropdownMenu ... /></Fragment>
よりも
<Fragment><BlockControls><Toolbar><DropdownMenu ... /></Toolbar></BlockControls></Fragment>
の方が適切なようです。(公式テーブルブロックのドロップダウン部分のコードを参照)
もうひとつは該当のコードが動作するようにビルドされているかを確認することです。
ビルド時にエラーが出ていないか、該当のコードが書かれたファイルがきちんと読み込まれているかなどを再度確認してみてください。
今のところ、ドロップダウンが表示されない原因について心当たりがあるのは上記の2点ではないかと思います。
Topic starter
2019年3月20日 07:36
朝一に動作確認のみを大雑把に行ってみて、とりあえず書き込んだだけなので、少ない情報ですみませんが、また何か分かったことがあれば追記させていただきます。
2019年3月20日 21:02
!!!
というか、そんな部分に表示されるんですね。
僕としては、「太字(boldクラス指定)」の手前に表示される順番で挿入し、そのつもりでいたのでその部分は見てもいませんでした。。
<BlockControls><Toolbar>も以前試したときに、やったと思うんですが、まさかそんなところに表示されると思わず、太字の手前ばかり見ていました。
僕の環境でも出ていました。。
今後、順番変更方法も探りながら、動作方法を探ってみたいと思います。
ちゃんとターミナルやブラウザーのコンソールに、エラーが出てくれれば、ありがたいんですけどね…。でないケースが結構あって。
書き込みのおかげで、かなり進展しました。
ありがとうございます!
またあとでコードを書いてみて進捗があれば書き込もうと思います。
Topic starter
2019年3月21日 03:02
エディタのツールバーについて、基本は既存コンポーネント群→追加コンポーネント群→最後尾にフォーマットボタン用コンポーネント群と表示されるみたいです。
Gutenbergの仕様に則ってカスタマイズするのであれば、フォーマットボタンの自由度は高くなく、用意されている様々なコンポーネントを活用するには新たにコンポーネント群を追加するのが良さそうです。
コンポーネント『DropdownMenu』や『Toolbar』などを用いることで、コンポーネント群を追加する形です。
(『Toolbar』は例えば、テキストの左・中央・右寄せボタンの箇所など。)
ちなみに、実際に試してはいないので詳しくは分かりませんが、『MenuItem』を用いると『DropdownMenu』内をより細かく構築できるとのことです。
わいひら様が示された
https://technote.space/add-richtext-toolbar-button
にあるプラグインを軽く読んでみましたが、フォーマットボタン用コンポーネント下に新たな独自コンポーネントを用意し、より自由度の高いフォーマットボタンへと拡張させることで実現しているようですね。
独自コンポーネントを追加すれば、その分拡張性は増すわけですが、そこにかける労力や今後のメンテナンス等を考えると、極力既存のコンポーネントのみでうまく組み合わせて作った方が良いのでは?と個人的には思います。
コンポーネント群の順番変更方法についてはまだよく見ていないので分からないですが、少なくとも順番を気にしなければ、既存のコンポーネントだけでもプラグインと同じような機能の多くは実現可能かと。
2019年3月21日 22:00
エディタのツールバーについて、基本は既存コンポーネント群→追加コンポーネント群→最後尾にフォーマットボタン用コンポーネント群と表示されるみたいです。
そうだったんですね。そうとは知らず、追加されていた部分は見てませんでした…。
ちなみに、実際に試してはいないので詳しくは分かりませんが、『MenuItem』を用いると『DropdownMenu』内をより細かく構築できるとのことです。
そうなんですね。あとでMenuItemで検索してみたいと思います。
Add RichText Toolbar Button
これは、どのファイルをよく読まれたのでしょうか。
以下のファイルをBeautifyして読んだとかでしょうか。
https://github.com/technote-space/add-richtext-toolbar-button/blob/master/assets/js/add-richtext-toolbar-button-gutenberg.min.js
プラグインを軽く読んでみましたが、フォーマットボタン用コンポーネント下に新たな独自コンポーネントを用意し、より自由度の高いフォーマットボタンへと拡張させることで実現しているようですね。
やっぱりtechnoteさんの技術力は半端ないですね。
独自コンポーネントを追加すれば、その分拡張性は増すわけですが、そこにかける労力や今後のメンテナンス等を考えると、極力既存のコンポーネントのみでうまく組み合わせて作った方が良いのでは?と個人的には思います。
僕も、既存のものでないと、現在の僕の能力では多分手に負えなくなると思います。
Reactの記法はなじみがなくて、正直全然慣れません…。
やるとしても、ちゃんとした本を一冊読まないとダメそう。
2019年3月21日 22:09
現在、テキスト色だけは、昨日こんな感じで作成してみました(これが作法的に良いのかわかりませんが)。
https://github.com/yhira/cocoon/blob/blocks/blocks/src/toolbutton/letter-colors.js
色つけや太字のような動作はするのですが、isActiveの「現在該当のインライン要素を選択中か」の取得方法は謎ですね…。
Topic starter
2019年3月22日 00:22
「Add RichText Toolbar Button」については、わいひら様がおっしゃるように
にてツールバー用のJS(add-richtext-toolbar-button-gutenberg.min.js)が読み込まれているので、ツールバーの動作についてはそちらを読むのがよいかと。
Gutenberg公式の資源を流用しつつ…といった感じではありますが、やはり正攻法とは言えなさそうなので、少なくともしばらくはGutenbergの仕様変更についていくのが大変だと思います。
今朝、ブロックエディタのツールバーについていろいろ調べていて見つけたのですが、どうやら次回のWordPressアップデートでツールバーにも変更が加えられるようです。
https://make.wordpress.org/core/2019/03/20/whats-new-in-gutenberg-20th-march/
のEnhancementsにある、
Add a RichText collapsed format toolbar for code, inline image and strikethrough formats.
https://github.com/WordPress/gutenberg/pull/14233
とのことです。
pono reacted
Topic starter
2019年3月22日 01:30
DropdownMenuのcontrolsにはisActiveというオブジェクトが用意されていないようです。
https://wordpress.org/gutenberg/handbook/designers-developers/developers/components/dropdown-menu/
Gutenbergのテーブルブロックでは、isDisabledでテーブルセルが選択されているかどうかを取得しています。
https://github.com/WordPress/gutenberg/blob/master/packages/block-library/src/table/edit.js
pono reacted
Topic starter
2019年3月22日 20:42
わいひら様、どうやらドキュメントの方は少し古いみたいで、現在controlsには以下のオブジェクトが格納できるようです。
{
icon: string,
title: string,
subscript: string,
onClick: Function,
isActive: boolean,
isDisabled: boolean
}
ToolbarButtonやToolbarContainerもありますが、まだコンポーネントとしては採用されていないようなので、今後の変更で新たにコンポーネントとして追加されるのかも…?
あと、ドロップダウン下に置く各個別ボタンの機能については、MenuItem等(MenuItem, MenuItemsChoice, or MenuGroup)でできることを確認しながら作るのがよいかもしれません。
MenuItem等でできることは大抵何とかすればDropdownMenu下でできるでしょう(ショートカットキーの設定とかも?)し、逆にMenuItem等を使った方が楽にできるパターンもあるのではないでしょうか。
pono reacted
2019年3月22日 22:48
ありがとうございます。
controlsには以下のオブジェクトが格納できるようです。
subscriptも設定できるんですね。これは初めて見ました。
MenuItemは、リンク先を見る限りでは、ツールボタン右端の「3つの点」をクリックすると表示されるメニューアイテムのことでいいのかな。
とりあえず、DropdownMenuでやりたいことの材料は揃ったので、一度DropdownMenuで実装します。
その後、補足機能が必要であれば、随時書き換えていこかなと。
とりあえず、時間ができたらMenuItemのデモを作ってみて、動作を確認してみようと思います。
2019年3月24日 20:44
最新版で、ようやく機能追加できました。
https://wp-cocoon.com/1-7-2/
この実装ができたのも、ロコさんのご協力のおかげです。
ありがとうございました!
ぷっぷ reacted
2019年3月24日 20:45
次は、カラムレイアウト機能を出来ればと。
まずは調べるところからですが^^;
問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。
また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。
(CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。
フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。
最近の書き込みはこちら。
詳細なカスタマイズ依頼をするならこちら。