使用create-block创建的WordPress区块激活后不显示的排查请求
WordPress自定义区块不显示的原因及调试方法
可能的原因
- 插件未实际完成加载:后台显示激活但区块注册的核心脚本未被正确引入,比如PHP文件中的区块注册代码存在路径错误。
- 构建产物异常:
npm run build未成功生成build目录下的文件(如index.js、index.asset.php),或产物文件损坏。 - 缓存干扰:WordPress编辑器缓存、浏览器缓存或服务器对象缓存导致区块列表未更新。
- 版本兼容性问题:
@wordpress/create-block的版本与当前WordPress版本不匹配,比如新版本生成的代码依赖更高版本的WP区块API。 - 插件目录/文件命名问题:如果修改过插件目录名或主PHP文件名,可能导致脚本路径注册错误。
调试方法
- 确认插件激活状态:在后台「插件」页面再次检查插件是否处于激活状态,同时查看页面顶部是否有插件加载报错提示。
- 验证构建产物:打开插件根目录,确认
build文件夹存在,且内部包含index.js、index.asset.php等文件。可以打开index.js查看是否包含你添加的console.log("Hello infobox")代码。 - 检查区块注册代码:打开插件主PHP文件(如
infobox.php),找到register_block_type函数,确认参数中的路径配置正确:register_block_type( __DIR__ . '/build', array( // 确保此处配置指向正确的构建产物目录 ) ); - 强制清除缓存:
- 浏览器端:按
Ctrl+Shift+R强制刷新编辑器页面,清除浏览器缓存。 - WordPress端:通过缓存插件清除对象缓存,或使用WP-CLI执行
wp cache flush命令。 - 启用调试模式:在
wp-config.php中添加以下代码,禁用编辑器缓存并加载未压缩脚本:define( 'SCRIPT_DEBUG', true ); define( 'WP_DEBUG', true );
- 浏览器端:按
- 检查脚本加载状态:打开浏览器开发者工具的「Network」标签,过滤JS文件,搜索
infobox相关的脚本,确认是否成功加载(状态码为200)。如果未加载,检查请求URL是否正确,是否存在404错误。 - 测试脚本可访问性:直接在浏览器地址栏输入插件
build/index.js的完整URL(如http://你的域名/wp-content/plugins/infobox/build/index.js),确认能正常打开并看到脚本内容。 - 核对版本兼容性:查看
@wordpress/create-block的版本要求,确认当前WordPress版本满足最低要求(比如最新版通常要求WP 6.0及以上)。
内容的提问来源于stack exchange,提问作者Martyn
相关产品推荐
相关产品推荐

