add_filter("block_categories_all", function ($cats) {
    return array_merge($cats, [["slug" => "abc-marketing", "title" => "营销组件"]]);
});

自定义区块在插入器里搜不到,分类下拉只有文本和媒体这些默认项,自己注册的「营销组件」一条都没有,代码也没有报错。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。

原因不复杂,注册时填的 category 必须是已经存在的类别 slug,写了个没注册的名字,区块仍会注册但不显示。类别要在专门的过滤器里先加进去,顺序反了同样找不到。

围绕「区块类别不显示」排查时,命令行跑一遍比在面板里点十次有用,面板会替你做掉不少隐式操作。备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。

接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。

处理上按这个顺序:用类别过滤器注册一个唯一 slug 的类别;区块的 category 字段填同一个 slug 注意大小写;重开编辑器 确认插入器左侧出现该类别。

改完只确认一件事:插入器左侧出现「营销组件」,自定义区块排在该类别下。

作者 9823189