【发布时间】:2017-10-16 09:38:59
【问题描述】:
我的内容树有点像这样
文章
- 2016
- 1
- 第一条
- 2
- ...
- 1
- 2017
- 1
- 第一条
- 2
- ...
- 1
有什么方法可以让 Umbraco 为“文章 1”选择唯一的 URL 名称?
至于不,它给了我“/articles/2016/1/article-1”和“/articles/2017/1/article-1”,这本身并没有错。 但我宁愿让它像“/articles/2016/1/article-1”和“/articles/2017/1/article-1-1”一样。
原因是我目前在 URL 中隐藏了年份和月份,但想在后台维护树结构。
【问题讨论】:
-
你可以自己写contentfinder,也许你可以在url中使用节点的ID,比如 /articles/article-[idNode]/ 。从内容查找器的一些示例中看这里24days.in/umbraco-cms/2014/urlprovider-and-contentfinder
-
感谢您的回复@Eyescream,我已经考虑过这种方法,但是它会暴露 URL 中不需要的 ID,因为我想要一个更“漂亮”的 URL结构体。我可以看到“-1-1”不是最佳的。然而文章,理论上不应该得到相同的名字。虽然如果发生这种情况,我希望它不会崩溃或发生故障。
-
您可以尝试使用 umbracoUrlAlias 手动覆盖您的页面别名。只需使用 textstring 类型的 umbracoUrlAlias 创建一个属性,Umbraco 将在 url 中使用该别名而不是默认别名。
-
@MarioLopez 有什么方法可以在与现有内容冲突时自动创建一个新名称?我不能依靠内容编辑自己来跟踪这一点。
-
您可以尝试向 ContentService.Saving 事件添加事件处理程序并执行一些逻辑来检查冲突并生成新别名?您甚至可以尝试这种方式来修改页面别名本身,而不是使用 umbracoUrlAlias:our.umbraco.org/documentation/reference/events/…