先给结论:不要靠人工把同一份内容复制到多个栏目并分别改,而要在建站阶段确定一个“主记录”位置,其余栏目只做引用或自动聚合。判断是否必须这样做的关键,是这份内容会不会被两处以上独立编辑、会不会在改价或改规格时需要同步。只要答案是会,单一来源就是必须项;如果只是首页展示一段简介、详情页才是完整内容,两者用途不同,可以分开维护,但要有明确边界。下面以读者手里的一份产品资料为例,说明怎样把它变成可执行的处理方案。
把手里这份资料摊开,逐个字段问它会不会变。假设有一份“某型号设备”的资料,包含名称、型号、适用场景、技术参数、价格说明和图片。名称和型号基本不变,技术参数可能随批次调整,价格说明变动最频繁。这类字段就应该放进一个主记录,比如产品库里的一个条目,由它统一持有这些字段。
反过来,如果一段文字只是栏目导语,比如“本栏目汇集各类设备信息”,它不描述具体产品,也不需要在别处复用,那就让它留在栏目页本身,不必强行抽成主记录。判断标准很简单:同一段文字是否需要在两个以上位置保持一致。需要,就抽出来;不需要,就地维护更省事。
这一步的实际动作是列出字段清单,并标注每个字段的“变更频率”和“出现位置数量”。变更频率高、出现位置多的字段优先进入主记录。做完这一步,你才知道哪些内容值得建结构,哪些直接写在页面里就行。
很多团队把“单一来源”误解成“同一内容只能有一个页面”,于是把产品详情、案例引用、栏目列表全部塞进同一个页面,结果页面臃肿、导航混乱。正确的做法是:主记录只有一个可编辑处,但可以被多个页面以不同方式呈现。
比如产品主记录放在产品库,栏目列表页只读取名称和缩略图,详情页读取完整参数,案例页只引用名称和一张图。这三处显示的内容多少不同,但都来自同一条主记录。编辑人员只改产品库那一条,三处同时变化。这样既避免了复制粘贴,也不会把页面做成大杂烩。
需要提醒的边界是:如果某个栏目需要展示的内容与主记录字段差异很大,比如案例页要写一段客户使用感受,而产品库没有这个字段,那就不要硬塞进主记录。可以为案例单独建一条记录,只引用产品名称作为关联,而不是把感受写进产品字段。否则主记录会被无关信息撑大,反而难维护。
假设你已经在产品库里建好了一条主记录,现在要在三个栏目里出现。可执行的动作是:在栏目模板里写引用逻辑,而不是把文字再打一遍。以常见做法为例,列表页模板只输出名称和链接,详情页模板输出全部字段,侧栏推荐只输出名称和缩略图。技术实现上,这可能是一段查询代码,也可能是内容管理系统里的关联字段,具体形式取决于你用的工具。
做完这个动作后,你会得到一个可验证的结果:修改主记录里的价格说明,三个栏目在刷新后同步变化。如果某个栏目没有变,说明它仍然是复制出来的独立副本,需要找出来改掉。这个结果会直接影响下一步——你要决定是否继续扩大引用范围,还是先停下来清理残留的复制内容。
这里有一个容易忽略的假设:引用逻辑依赖模板和字段结构,如果模板被改坏,或者字段被删除,引用就会失效。所以每次改动主记录结构后,要检查引用它的页面是否还正常。这不是危言耸听,而是规模化之后最常见的例外来源。
用一条产品资料做试验时,引用关系简单,手工检查也能覆盖。但当产品数量增加到几十条、栏目增加到十几个时,例外会集中出现,常见的有三类。
这些例外的共同点是:它们不是引用机制本身出错,而是有人绕过了机制。所以规模化之后,维护重点不是继续增加引用,而是定期检查有没有新的复制内容产生。可以约定一个简单动作:每次新增栏目或页面时,先问它要展示的内容是否已存在于主记录;如果存在,就引用;如果不存在,再决定是扩展主记录还是新建独立记录。这个动作的结果会决定你的内容结构是越用越清晰,还是越用越混乱。
不是所有内容都值得建主记录。以下情况可以分开维护:
判断的落脚点始终是维护成本,而不是“单一来源”这个说法本身。如果一份资料一年只改一次,且只出现在两个地方,人工同步可能比建关联更省事。但如果你已经遇到改了一处忘了另一处的情况,那就说明当前做法已经越过了可接受的边界,应该转为引用。
把手里这份资料按上面的步骤过一遍:先标字段和变更频率,再决定主记录位置,然后用引用替换复制,最后检查规模化后的例外。做完这些,你对“同一内容进多个栏目”这件事就有了可执行的处理方案,而不是停留在概念上。