先不要急着改数据库表结构。更稳妥的做法是:把“缺字段”拆成三种可能——展示层缺、内容模型缺、查询关系缺,然后只对确认属于内容模型缺的部分做扩展。在缺少完整数据或权限时,最小动作是导出一份现有内容样本,用只读方式核对字段实际使用情况,再决定是加自定义字段、加分类法,还是拆出新内容类型。
上线后发现字段不够用,常见反应是直接往文章表里加列。但很多所谓“缺字段”,其实不是数据库缺列,而是下面几种情况之一:
这三种的处理方式完全不同。展示层问题改模板即可;内容模型问题适合用自定义字段;查询关系问题更适合自定义分类法或独立内容类型。判断依据不是“我觉得少了个字段”,而是现有数据里是否已经存在这个值、它是否会被反复用于筛选或排序。
假设你手上有一篇已发布的文章,页面里写着“交付时间:2024 年 3 月”,但它是写在正文段落里的。你可以这样逐步处理:
这个顺序的关键在于:先证明字段有稳定的数据来源,再动手扩展。否则你会建出一批长期为空、没人填的字段。
确认属于内容模型缺之后,常见有两条路:
选择依据可以简化为一句:这个值会不会被用来筛选、聚合或生成独立页面?会,就倾向分类法或内容类型;不会,就先用自定义字段。
假设你的站点有 200 篇产品文章,上线后发现需要按“适用行业”筛选。当前“适用行业”写在正文里,无法筛选。此时有两种做法:
如果行业名称还在频繁变动,先做做法 A 更稳;如果行业已经固定且会被反复筛选,做法 B 的长期成本更低。这里的数字只用于说明比较方法,不代表任何真实站点的数据。
如果你没有数据库权限,也没有修改主题文件的权限,仍然可以执行一个最小动作:导出一份现有内容清单,用只读方式统计某个候选字段在多少篇内容中出现、出现频率如何。这个动作的结果只能说明“这个值是否普遍存在”,不能证明“它一定值得建字段”,也不能证明“建了字段后前台筛选就会自动生效”。
同样,如果后台访问量或抓取量在改动后出现波动,也不能单独归因于字段扩展。缓存、模板改动、内容更新节奏都可能造成类似现象。把字段扩展当成唯一解释,容易做出错误判断。下一步应该先确认波动是否与模板输出变化同步,再决定是否回退。
扩展数据字段的本质不是加得越多越好,而是让内容模型和实际查询需求对齐。先证明需求稳定,再选扩展方式,最后用样本验证输出结果,这样比上线后反复改表更可控。