Umbraco:如何在网站的所有内容节点上用另一个宏替换一个宏?

Umbraco:如何在网站的所有内容节点上用另一个宏替换一个宏?,umbraco,umbraco7,Umbraco,Umbraco7,我有一个宏,我们把它叫做“X”,想把它删除。删除它将在使用该宏X的内容节点上的网站周围创建悬空引用,因此会出现错误 因此,我想用宏Y替换宏X 有很多内容节点使用这个宏 进行此转换的最快方法是什么?宏存储在Richtext编辑器中时遵循一种相当简单的模式。如果查看一个现有节点,您应该能够看到要查找的内容 然后需要迭代所有内容节点,使用RTE属性编辑器循环所有属性,并更新值,用新的宏别名替换旧的宏别名。确保您最终实际执行更改的所有节点都已重新发布。您可以跳过重新发布未找到宏的所有节点,以稍微加快该过

我有一个宏,我们把它叫做“X”,想把它删除。删除它将在使用该宏X的内容节点上的网站周围创建悬空引用,因此会出现错误

因此,我想用宏Y替换宏X

有很多内容节点使用这个宏


进行此转换的最快方法是什么?

宏存储在Richtext编辑器中时遵循一种相当简单的模式。如果查看一个现有节点,您应该能够看到要查找的内容

然后需要迭代所有内容节点,使用RTE属性编辑器循环所有属性,并更新值,用新的宏别名替换旧的宏别名。确保您最终实际执行更改的所有节点都已重新发布。您可以跳过重新发布未找到宏的所有节点,以稍微加快该过程

除此之外,如果通过选择器或类似的方式使用宏,则必须将这些属性修复为。不过,最常见的是通过RTE使用宏


使用ContentService处理您的内容节点—我不建议直接在数据库中解决这个问题,除非您确切知道哪些表需要更新,哪些需要去哪里—以及哪些索引需要在以后重建。否则,您的站点可能会出现无效的数据状态。

只是一个想法……您不能用Marco y的代码替换宏X中的代码,这样您就不需要更新所有内容了。好主意。但是,这会创建重复的宏,这对于干净的代码等来说是需要避免的。一个可能的选择是复制内容,而不是宏。这样,您就可以编写一个脚本来替换不同doctype属性中的宏,然后切换显示的内容。一切正常后,可以删除旧属性和旧宏。