前提・実現したいこと
WordPressのブロックエディタで、使用できる埋め込みのブロックをYouTubeのみに制限したいです。
しかし、下記ページを参考に実装してみましたが、コンソールを確認するとエラーが出ておりうまくいきません。
参考2
https://qiita.com/ryotamoriyama/items/c060ae6c004bb45c9d53
発生している問題・エラーメッセージ
Uncaught TypeError: Cannot read property 'forEach' of undefined at HTMLDocument.<anonymous> (allowedBlock.js?ver=5.7.1:5)
該当のソースコード
PHP
1// functions.phpです 2function allowed_block() { 3 wp_enqueue_script('mytheme-script', get_template_directory_uri() . '/js/allowedBlock.js'); 4} 5add_action('enqueue_block_editor_assets', 'allowed_block');
JavaScript
1wp.domReady(function () { 2 const allowedEmbedBlocks = [ 3 'youtube', 4 ]; 5 wp.blocks.getBlockVariations('core/embed').forEach(function (blockVariation) { 6 if (-1 === allowedEmbedBlocks.indexOf(blockVariation.name)) { 7 wp.blocks.unregisterBlockVariation('core/embed', blockVariation.name); 8 } 9 }); 10});
試したこと
コンソールにwp.blocks.getBlockVariations('core/embed')の内容を表示してみようと思い、下記コードを試しました。
JavaScript
1wp.domReady(function () { 2 console.log(wp.blocks.getBlockVariations('core/embed')); 3});
結果はundefinedだったので、そもそもwp.blocks.getBlockVariations(hoge)がうまく機能していないようです。
wp.blocks.getBlockVariations('core/image')など他のブロックでも試しましたが結果はundefinedでした。
補足情報(FW/ツールのバージョンなど)
WordPressのバージョン:5.7.1
解決方法をご存知の方がいらっしゃいましたら、何卒よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー