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

如何在Kentico 10中基于文档名动态设置页面标题?

嘿,针对你在Kentico 10里要给1000个文档自动设置页面标题的需求,我给你整理了几个靠谱的自动实现方案,不用一个个手动折腾:

1. 用内置批量更新工具(零开发快速搞定)

这是最适合非开发人员的方法,Kentico后台自带批量操作能力:

  • 进入后台的Content模块,定位到你的目标节点,筛选出所有需要更新的子文档(可以用顶部的筛选器缩小范围,或者直接勾选全选按钮)
  • 点击顶部的「Bulk actions」按钮,选择「Update」选项
  • 在弹出的批量更新窗口里,找到页面标题对应的字段(通常是DocumentPageTitle,如果是自定义字段就选你对应的字段名)
  • 设置字段的更新值为宏表达式,比如你想用文档名称加固定后缀,就写{% DocumentName %} - 你的站点名称;如果要结合其他自定义字段,比如分类,就写{% DocumentName %} | {% DocumentCategory %}
  • 先预览更新效果确认没问题,再点击执行,就能一次性更新所有选中文档的标题了

2. 自定义API脚本(适合复杂逻辑)

如果你的标题规则比较复杂(比如需要调用外部数据、多字段复杂拼接),可以用Kentico的API写个脚本批量处理:

// 替换成你的目标节点ID
int targetNodeId = 123;
// 替换成你的站点文化代码
string cultureCode = "en-US";

// 查询目标节点下的所有文档
var targetDocuments = DocumentHelper.GetDocuments()
    .Path(targetNodeId, PathTypeEnum.Children)
    .OnCurrentSite()
    .Culture(cultureCode)
    .ToList();

foreach (var doc in targetDocuments)
{
    // 这里写你的动态标题生成逻辑,示例用文档名称+自定义字段
    string dynamicTitle = $"{doc.DocumentName} - {doc.GetValue("ProductBrand", "默认品牌")}";
    
    // 设置页面标题字段
    doc.SetValue("DocumentPageTitle", dynamicTitle);
    
    // 保存文档,true表示跳过工作流(根据你的站点需求调整)
    DocumentHelper.UpdateDocument(doc, TreeProvider.Static, true);
}

你可以把这段代码放到后台的Customization → Custom code里的脚本执行器运行,或者做成一个简单的后台自定义页面执行一次即可。

3. 宏规则自动生成(兼顾新增和现有文档)

如果想让未来新增的文档自动生成标题,同时也能批量更新现有文档,可以这么做:

  • 进入Settings → Content → Content types,找到你对应的文档类型
  • 编辑该类型,找到页面标题字段,设置「Default value」为宏表达式(比如{% DocumentName %} - 站点后缀)
  • 对于现有文档,还是用批量更新工具,把标题字段设置为这个宏表达式,批量更新;之后新增的文档会自动套用这个规则生成标题

注意事项

  • 操作前一定要备份数据库,批量操作万一出错能快速回滚
  • 如果你的文档启用了工作流,批量更新时要注意是否需要提交到工作流,或者在脚本里设置跳过工作流(根据站点配置调整)
  • 宏表达式支持很多内置变量和自定义字段,你可以根据需求灵活组合,比如{% DocumentName %} | {% DateTime.Now.ToString("yyyy-MM-dd") %}

内容的提问来源于stack exchange,提问作者Deivi Robles

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:14:18