You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress注册多个自定义区块(Block)报错求助

问题排查与解决

错误原因分析

从报错路径能看到,WordPress查找index.asset.php时出现了重复嵌套的路径:/blocks/image-link/build/image-link/build/image-link/,这说明你注册区块时指定的路径层级错误,导致系统去不存在的目录查找必要文件。

解决步骤

1. 确认正确的区块文件夹结构

你的主题目录下,区块应是两个独立目录,每个目录包含src(源码)和build(编译后文件):

wp-content/themes/你的主题/
└── blocks/
    ├── image-link/
    │   ├── src/
    │   └── build/  # 编译后需生成index.asset.php、index.js等文件
    └── video-popup/
        ├── src/
        └── build/

2. 修正区块注册代码

你当前的注册路径多嵌套了一层build/image-link,需改为直接指向每个区块的build目录:

function register_custom_blocks() {
    // 指向image-link区块的编译目录
    register_block_type( THEME_PATH . '/blocks/image-link/build' );
    // 指向video-popup区块的编译目录
    register_block_type( THEME_PATH . '/blocks/video-popup/build' );
};
add_action('init', 'register_custom_blocks');

3. 确保区块已正确编译

  • 每个区块的src目录必须经过编译(通常执行npm run build命令),生成build目录及其中的index.asset.php、index.js等文件,这是WordPress加载区块的必需文件。
  • 不要直接指向src目录,源码目录没有生成WordPress需要的资源映射文件。

4. 验证常量THEME_PATH的正确性

确认THEME_PATH常量准确指向主题根目录,也可以用WordPress内置函数替代自定义常量,避免路径错误:

// 父主题用get_template_directory(),子主题用get_stylesheet_directory()
register_block_type( get_template_directory() . '/blocks/image-link/build' );

内容的提问来源于stack exchange,提问作者frank astin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 06:07:35