WordPress主题自定义块无法加载至编辑器问题求助
block.json配置或路径错误
确认block.json的name字段格式合规(必须是命名空间/块名结构,比如jcal/testimonial),同时检查editorScript、style等资源字段的路径是否正确。比如构建后的JS文件在build/blocks/jcal-testimonial/index.js,那么editorScript应设为file:./index.js(相对当前block.json的路径)。register_block_type的路径参数错误
调用register_block_type时,必须传入包含block.json的目录路径,而非直接指定JS文件。示例代码:register_block_type( get_template_directory() . '/src/blocks/jcal-testimonial' );若构建产物存放在
build目录,需确保路径指向包含正确block.json的位置——部分场景下需要将构建后的block.json同步到主题对应目录,或在注册时正确关联构建资源路径。wp-scripts构建产物输出异常
检查package.json的build脚本配置,确认--output-path指向主题内的正确目录。示例配置:"scripts": { "build": "wp-scripts build src/blocks/jcal-testimonial/index.js --output-path=build/blocks/jcal-testimonial" }执行
npm run build后,需验证build目录下是否生成了index.js、index.asset.php等文件——index.asset.php是WordPress自动加载脚本的关键依赖文件。缺少必要的脚本依赖与注册逻辑
确保index.js中正确引入WordPress块相关依赖并完成注册,示例代码:import { registerBlockType } from '@wordpress/blocks'; import './style.css'; import edit from './edit'; import save from './save'; import metadata from './block.json'; registerBlockType( metadata.name, { edit, save, } );主题配置或缓存干扰
在functions.php中确认主题开启了块支持:add_theme_support( 'editor-styles' ); add_theme_support( 'wp-block-styles' );同时清空WordPress缓存、浏览器缓存,排查是否有缓存插件合并脚本导致资源未更新;也需检查是否有自定义函数误阻止了块脚本的加载。
文件权限问题
验证build目录及生成的JS文件权限,确保Web服务器可读取,一般目录权限设为755,文件权限设为644。
内容的提问来源于stack exchange,提问作者szh

