"attributes": { "subtitle": { "type": "string", "default": "" } }
// save 里读取:$subtitle = $attributes["subtitle"] ?? "";

自定义区块里填的副标题,保存后刷新就变回默认值,区块注释里只有一对空引号,数据库里存的是空串。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。

追下去是这么回事:属性只在编辑函数里改了状态,保存函数没有把它输出到 HTML,序列化时就按默认值写回。属性没在描述文件里声明类型,接口也会丢掉它。

「区块属性保存丢失」改完先别急着全量,挑一台机器放半天,真有问题这段时间就能看出来。监控和日志的时间要对上,时区不一致会多绕很大一圈。

临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。

处理上按这个顺序:在区块描述文件里声明字段和类型 默认值写清楚;保存函数把属性渲染成 HTML 或数据属性;改完重新构建 清一次浏览器缓存再测。

确认没问题再收工,保存后查看区块注释,副标题里有实际内容,刷新不回退。

作者 9823189