自定义古登堡块未显示在插入器对话框中

时间:2018-08-21 作者:Subrata Sarkar

我试图通过参考手册来构建最简单的定制古腾堡积木https://wordpress.org/gutenberg/handbook/blocks/writing-your-first-block-type/.

目录结构如下:

wp-content
   plugins
      gutenberg-bolierplate-block
         block.js
         gutenberg-boilerplate-block.php

Content of gutenberg-boilerplate-block.php

<?php
function gutenberg_bolierplate_block() {
    wp_register_script(
        \'gutenberg-boilerplate-block-es5\',
        plugins_url( \'block.js\', __FILE__ ),
        array( \'wp-blocks\', \'wp-element\' )
    );

    register_block_type( \'gutenberg-boilerplate-block/hello-world\', array(
        \'editor_script\' => \'gutenberg-boilerplate-block-es5\',
    ) );
}

add_action( \'init\', \'gutenberg_bolierplate_block\' );

Content of block.js

var el = wp.elements.createElement,
    registerBlockType = wp.blocks.registerBlockType,
    blockStyle = { backgroundColor: \'#900\', color: \'#fff\', padding: \'20px\' };

registerBlockType ( \'gutenberg-boilerplate-block/hello-world\', {
        title: \'Hello World\',
        icon: \'universal-access-alt\',
        category: \'common\',
        edit: function() {
            return el( \'p\', { style: blockStyle }, \'Hello editor\' );
        },
        save:  function() {
            return el( \'p\', { style: blockStyle }, \'Hello saved content\' );
        }
} );
但障碍是never showing up in the inserter dialog. 我尝试了不同的浏览器,也清除了缓存。这是我第一次尝试这个,完全不知道我做错了什么。

任何建议都会大有帮助!

2 个回复
最合适的回答,由SO网友:Hardeep Asrani 整理而成

您应该使用enqueue_block_assets 动作如下:

add_action(\'enqueue_block_assets\', \'gutenberg_bolierplate_block\');
其次,您应该将JSX与现代JavaScript开发环境结合使用,以便轻松地编写块。

我制作了一个样板供我个人使用,您可以使用:https://github.com/HardeepAsrani/gutenberg-boilerplate

你只需要跑npm install 安装依赖项,然后npm run devnpm run build 传输代码。

如果要继续这种方式,则必须从

var el = wp.elements.createElement,

var el = wp.element.createElement,
因为它使用了错误的模块名称。

SO网友:Danny Cooper

问题是:

var el=wp。要素s.createElement创建元素

我建议在开发块时经常检查控制台。像这样的错误通常会首先出现在那里。

结束

相关推荐