我试图通过参考手册来构建最简单的定制古腾堡积木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. 我尝试了不同的浏览器,也清除了缓存。这是我第一次尝试这个,完全不知道我做错了什么。
任何建议都会大有帮助!
最合适的回答,由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 dev
或npm run build
传输代码。
如果要继续这种方式,则必须从
var el = wp.elements.createElement,
至
var el = wp.element.createElement,
因为它使用了错误的模块名称。