如何使用核心服务从出版物中读取 Tridion 页面 URL?

问题描述

我在 Excel 表中有一个 Tridion 页面 URL 列表,单击我正在为其开发自定义页面的按钮时应该取消发布。如何从出版物中读取 URL。?例如,URL 看起来像“https://www.example.com/us/en/abc/cde/index.html”(us/en - country/language;结构组中的 abc- 文件夹,结构组中的 cde- 子文件夹) abc,index.html 是页面)现在应该取消发布 index.html。

解决方法

如果我理解正确的话,您有一个页面的 URL,并且您想在 Tridion 中找到相应的页面。首先是坏消息:核心服务(CM API)不支持“通过 url 查找”。快速而肮脏的方法是使用 CD API 来检索页面。这将为您返回具有 ID 属性的页面。然后,您可以使用核心服务取消发布页面。

您也可以使用纯核心服务方法来实现,但工作量较大且速度较慢。它是这样的:

  • 从顶级目录开始(在您的示例中为“我们”)

  • 使用这样的过滤器列出根内的所有结构组:

    var filter = new OrganizationalItemItemsFilterData() { ItemTypes = new ItemType[] { ItemType.Page },包含路径列 = 真 };

  • 使用 Linq 查找您要查找的顶级目录

  • 移动到下一个目录并重复您找到的子结构组