求助:已激活的WordPress自定义区块插件在Gutenberg编辑器中不显示
解决自定义区块在Gutenberg编辑器中不显示的问题
1. 确认区块注册代码与配置文件正确性
- 打开插件目录下的
src/index.js,确保存在正确的registerBlockType调用,示例:import { registerBlockType } from '@wordpress/blocks'; import metadata from './block.json'; import Edit from './edit'; import Save from './save'; registerBlockType( metadata.name, { edit: Edit, save: Save, } ); - 检查
block.json核心字段:apiVersion:需与WordPress版本匹配(WordPress 5.8+用2,6.0+用3)category:必须是Gutenberg内置分类(如common、widgets、embed),自定义分类需额外注册title和description:确保填写清晰,避免搜索时匹配不到
2. 构建区块资产文件
生成的模板不会自动构建编译后的文件,需手动执行:
cd copyright-date-block npm install npm run build
执行完成后,插件目录会生成build文件夹,包含WordPress加载区块必需的编译后JS/CSS文件。
3. 验证插件主文件的脚本注册逻辑
打开插件根目录的copyright-date-block.php,确认存在正确的区块注册钩子与脚本加载代码:
function create_block_copyright_date_block_block_init() { $asset_file = include( plugin_dir_path( __FILE__ ) . 'build/index.asset.php' ); wp_register_script( 'create-block-copyright-date-block-block-editor-script', plugins_url( 'build/index.js', __FILE__ ), $asset_file['dependencies'], $asset_file['version'] ); register_block_type( __DIR__, array( 'editor_script' => 'create-block-copyright-date-block-block-editor-script', ) ); } add_action( 'init', 'create_block_copyright_date_block_block_init' );
重点检查:
- 是否通过
add_action( 'init', ... )触发区块注册 plugins_url路径是否正确指向build/index.jsregister_block_type是否正确传入插件目录路径
4. 排查版本兼容性
- 确认WordPress版本支持当前区块的
apiVersion(例如apiVersion:3需要WordPress 6.0+) - 若安装了Gutenberg插件,确保其为最新版本,避免与核心编辑器冲突
5. 清除缓存
- 清除WordPress缓存(若使用缓存插件)
- 用浏览器无痕模式打开编辑器,或强制刷新(Ctrl+F5)清除浏览器缓存
6. 检查开发者工具错误
打开Gutenberg编辑器后,按F12进入开发者工具的Console标签,查看是否存在JS错误(如依赖缺失、语法错误),这类错误会直接导致区块无法注册加载。
内容的提问来源于stack exchange,提问作者vinay deora
相关产品推荐
相关产品推荐

