Umbraco:如何在整个网站的内容节点上用另一个宏替换一个宏?
Umbraco: How do you replace a macro with another macro all over the website's content nodes?
所以我有一个宏,我们称它为 'X' 并想删除它。删除它会在使用该宏 X 的内容节点上的网站周围创建悬挂引用(因此会出现错误)。
因此,我想用宏 Y 替换宏 X。
有很多内容节点使用这个宏。
进行此转换的最快方法是什么?
宏存储在 Richtext 编辑器中时遵循一种相当简单的模式。如果您查看现有节点之一,您应该能够看到要查找的内容。
然后您需要遍历所有内容节点,使用 RTE 属性 编辑器遍历所有属性 - 并更新值,用新宏别名替换旧宏别名。确保最终实际进行更改的所有节点都已重新发布(您可以跳过重新发布未找到宏的所有节点,以稍微加快该过程)。
除此之外 - 如果您通过选择器或类似的东西使用您的宏,您将不得不修复这些属性。不过,最常见的是通过 RTE 使用宏。
使用 ContentService
来处理您的内容节点 - 我不建议直接在数据库中修复此问题,除非您确切知道要更新哪些表以及需要去哪里 - 以及需要哪些索引之后要重建。否则,您的网站最终可能会出现无效数据状态。
所以我有一个宏,我们称它为 'X' 并想删除它。删除它会在使用该宏 X 的内容节点上的网站周围创建悬挂引用(因此会出现错误)。
因此,我想用宏 Y 替换宏 X。
有很多内容节点使用这个宏。
进行此转换的最快方法是什么?
宏存储在 Richtext 编辑器中时遵循一种相当简单的模式。如果您查看现有节点之一,您应该能够看到要查找的内容。
然后您需要遍历所有内容节点,使用 RTE 属性 编辑器遍历所有属性 - 并更新值,用新宏别名替换旧宏别名。确保最终实际进行更改的所有节点都已重新发布(您可以跳过重新发布未找到宏的所有节点,以稍微加快该过程)。
除此之外 - 如果您通过选择器或类似的东西使用您的宏,您将不得不修复这些属性。不过,最常见的是通过 RTE 使用宏。
使用 ContentService
来处理您的内容节点 - 我不建议直接在数据库中修复此问题,除非您确切知道要更新哪些表以及需要去哪里 - 以及需要哪些索引之后要重建。否则,您的网站最终可能会出现无效数据状态。