-
投稿者投稿
-
2020年11月25日 1:55 AM #61548
【お使いの Snow Monkey Editor のバージョン】3.0.5
【当該サイトのURL】https://github.com/qrac/qroko-blocks===
こんにちは!クラのこのクラク(旦那の方)です。
Snow Monkey Editorのextensionがとても便利なので、coreとSnow Monkey Blocks以外にも適応させたいと考えています。
具体的には、公式ディレクトリにアップしている「Qroko Blocks」と、受託案件用にプライベートで制作している個別のカスタムブロックへの適応を想定しています。
GitHub Issuesに、「適応範囲を絞り込んでaddFilterで他のブロックに適応」という走り書きがあったので、機能として用意いただいていると思ったのですが、どこに何を書くと適応されるのかが分かりませんでした。
How Toを教えていただけると助かります!よろしくお願いします。
♥ 1いいねをした人: 居ません2020年11月25日 9:36 AM #61558下記を試してみてください!(JS ファイルに記述して呼び出してください)
import { addFilter } from '@wordpress/hooks'; addFilter( 'SnowMonkeyEditor.extension.allowedNameSpaces', 'snow-monkey-blocks/apply-snow-monkey-editor-extensions', ( allowedNameSpaces, extensionName ) => { return [ ...allowedNameSpaces, 'snow-monkey-blocks', // ← ここに適用したいブロックのネームスペースを記述 ]; } );
♥ 2いいねをした人: 居ません2020年11月25日 2:46 PM #61594早速ありがとうございます!!
試しにエディタ側のJSに以下を貼ってみたのですが、これだけだと適応されないようでした。
import { addFilter } from "@wordpress/hooks" addFilter( "SnowMonkeyEditor.extension.allowedNameSpaces", "snow-monkey-blocks/apply-snow-monkey-editor-extensions", (allowedNameSpaces, extensionName) => { return [...allowedNameSpaces, "qroko-blocks"] } )
受け取る側のサポート設定など、何か足りない部分があるかもしれませんので、少し試行錯誤してみます!
♥ 0いいねをした人: 居ません2020年11月25日 4:22 PM #61598あ!僕のコードが間違っているかも?
import { addFilter } from "@wordpress/hooks" addFilter( "SnowMonkeyEditor.extension.allowedNameSpaces", "qroko-blocks/apply-snow-monkey-editor-extensions", // ← ここの namespace を変えてみました (allowedNameSpaces, extensionName) => { return [ ...allowedNameSpaces, "qroko-blocks" ]; } );
だとどうですかね?あとはもしかしたら読み込み順でどうとかあるのかもですね…。
♥ 1いいねをした人: 居ません2020年11月25日 6:28 PM #61604助言ありがとうございます!
検証の途中で記事も拝見しました。すでに公開済みだったんですね。すいません!
JS版とPHP版で以下の方法を試してみたのですが、いずれも適応されずでした。
- いただいだ箇所のnamespaceを修正してみる(JS)
- importや実行を最初・最後にしてみる(JS)
- Qroko Blocks以外の案件用カスタムブロックのnamespaceに変えてみる(JS)
- PHP版をプラグインのrootファイルに書いてみる(PHP)
- テーマのJSに混ぜてみる(JS)
- テーマのfunctionにPHP版を書いてみる(PHP)
ただ、試しにテーマにCoBlocksを入れてPHP版を試した場合は適応されていました!
なので、僕の作ったカスタムブロックに総じて何か設定漏れがありそうです。少しプラグインのコードを見比べ検証してみます!
♥ 0いいねをした人: 居ません2020年11月27日 9:10 AM #61688検証の途中で記事も拝見しました。すでに公開済みだったんですね。すいません!
僕も書いていたことを完全に忘れていました!w
下記の issue で、フィルターはカスタムブロックの登録より前に呼び出す必要があると書かれていました。どういう順序で実行されているか検証してみると良いかもしれません。
♥ 1いいねをした人: 居ません2020年11月27日 7:38 PM #61774共有ありがとうございます!
原因が特定でき、Snow Monkey EditorのExtensionを適応することができました!!
僕の作ったカスタムブロックプラグインPHPに書いていたwp_register_scriptの引数($in_footer)がtrueになっていないのが原因でした。
カスタムブロックがwp_headで先に登録されているため、filterの処理が間に合っていなかったのだと考えられます。
※プラグイン「Qroko Blocks」はこちらのコミットで修正
お手数おかけしました!
♥ 0いいねをした人: 居ません2020年11月30日 9:39 AM #61848なるほど! そうかー、そういうパターンもありますよね。どうしても in_footer を true にしたくないスクリプトの場合はどうしたら良いのか悩みますね…。
解決済みということでトピック閉じますね。
♥ 1いいねをした人: 居ません -
投稿者投稿
- トピック「Snow Monkey EditorのExtensionを他のブロックにも適応させたい」には新しい返信をつけることはできません。