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 来处理您的内容节点 - 我不建议直接在数据库中修复此问题,除非您确切知道要更新哪些表以及需要去哪里 - 以及需要哪些索引之后要重建。否则,您的网站最终可能会出现无效数据状态。