Snow Monkey EditorのExtensionを他のブロックにも適応させたい

0
いいねをした人: 居ません
8件の投稿を表示中 - 1 - 8件目 (全8件中)
  • 投稿者
    投稿
  • #61548
    クラのこ
    閲覧者
    2

    【お使いの 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
    いいねをした人: 居ません
    #61558
    キタジマ タカシ
    参加者
    2243

    下記を試してみてください!(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
    いいねをした人: 居ません
    #61594
    クラのこ
    閲覧者
    2

    早速ありがとうございます!!

    試しにエディタ側の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
    いいねをした人: 居ません
    #61598
    キタジマ タカシ
    参加者
    2243

    あ!僕のコードが間違っているかも?

    import { addFilter } from "@wordpress/hooks"
    
    addFilter(
      "SnowMonkeyEditor.extension.allowedNameSpaces",
      "qroko-blocks/apply-snow-monkey-editor-extensions", // ← ここの namespace を変えてみました
      (allowedNameSpaces, extensionName) => {
        return [ ...allowedNameSpaces, "qroko-blocks" ];
      }
    );

    だとどうですかね?あとはもしかしたら読み込み順でどうとかあるのかもですね…。

    1
    いいねをした人: 居ません
    #61604
    クラのこ
    閲覧者
    2

    助言ありがとうございます!

    検証の途中で記事も拝見しました。すでに公開済みだったんですね。すいません!

    JS版とPHP版で以下の方法を試してみたのですが、いずれも適応されずでした。

    • いただいだ箇所のnamespaceを修正してみる(JS)
    • importや実行を最初・最後にしてみる(JS)
    • Qroko Blocks以外の案件用カスタムブロックのnamespaceに変えてみる(JS)
    • PHP版をプラグインのrootファイルに書いてみる(PHP)
    • テーマのJSに混ぜてみる(JS)
    • テーマのfunctionにPHP版を書いてみる(PHP)

    ただ、試しにテーマにCoBlocksを入れてPHP版を試した場合は適応されていました!

    なので、僕の作ったカスタムブロックに総じて何か設定漏れがありそうです。少しプラグインのコードを見比べ検証してみます!

    0
    いいねをした人: 居ません
    #61688
    キタジマ タカシ
    参加者
    2243

    検証の途中で記事も拝見しました。すでに公開済みだったんですね。すいません!

    僕も書いていたことを完全に忘れていました!w

    下記の issue で、フィルターはカスタムブロックの登録より前に呼び出す必要があると書かれていました。どういう順序で実行されているか検証してみると良いかもしれません。

    1
    いいねをした人: 居ません
    #61774
    クラのこ
    閲覧者
    2

    共有ありがとうございます!

    原因が特定でき、Snow Monkey EditorのExtensionを適応することができました!!

    僕の作ったカスタムブロックプラグインPHPに書いていたwp_register_scriptの引数($in_footer)がtrueになっていないのが原因でした。

    カスタムブロックがwp_headで先に登録されているため、filterの処理が間に合っていなかったのだと考えられます。

    ※プラグイン「Qroko Blocks」はこちらのコミットで修正

    お手数おかけしました!

    0
    いいねをした人: 居ません
    #61848
    キタジマ タカシ
    参加者
    2243

    なるほど! そうかー、そういうパターンもありますよね。どうしても in_footer を true にしたくないスクリプトの場合はどうしたら良いのか悩みますね…。

    解決済みということでトピック閉じますね。

    1
    いいねをした人: 居ません
8件の投稿を表示中 - 1 - 8件目 (全8件中)
  • トピック「Snow Monkey EditorのExtensionを他のブロックにも適応させたい」には新しい返信をつけることはできません。

ドキュメント

Snow Monkey の設定方法やマニュアルを掲載しています。

ドキュメント

フォーラム

Snow Monkey の使い方やカスタマイズについてのご質問・ご要望等はサポートフォーラムで行っています。サポートフォーラムは誰でも閲覧できますが、書き込みできるのは Snow Monkey 購入者のみとなります。

サポートフォーラム

よくあるご質問

Snow Monkey のサービスについて不明な点がある場合は、まずはよくあるご質問をご確認ください。

よくあるご質問

お問い合わせ

よくあるご質問を見ても解決しなかった場合、試用版の申請については問い合わせフォームからお願いいたします。

お問い合わせ

Snow Monkey は Gutenberg ブロックエディターに対応した 100%GPL の WordPress テーマです。拡張性を意識した開発をおこなっており、カスタマイザーとブロックでスピーディーにサイトを立ち上げるだけでなく、CSS やフックを駆使した高度なカスタマイズにも柔軟に対応できます。