在Sitecore中,如何更新使用动态占位符的大量占位符设置

时间:2016-06-10 20:15:04

标签: sitecore

由于某种原因,大量页面的占位符键已更改,我需要将其更改回来。问题是我们使用动态占位符,因此占位符键的一部分是随机GUID,它们位于每个子布局占位符键中

所以我需要

/bacontent/../baproducttabscaffold{6e0244e2-3583-47cb-b575-0bc920186d42}

/bacontent/../baproducttabscaffold{895ecd6f-4abb-478d-9dad-88e5e05b8c30}

改变这些的最有效方法是什么?

1 个答案:

答案 0 :(得分:6)

我最终做的是使用Sitecore Powershell Extensions https://marketplace.sitecore.net/en/Modules/Sitecore_PowerShell_console.aspx

我使用的脚本

$pages = gci -Path "master:\my path" -Recurse 
$oldGuid = "6e0244e2-3583-47cb-b575-0bc920186d42"
$newGuid = "895ecd6f-4abb-478d-9dad-88e5e05b8c30"

foreach($page in $pages){
    $oldRenderings = $page.__Renderings
    $newRenderings = $oldRenderings.Replace($oldGuid, $newGuid)
    $page.BeginEdit()
    $page.__Renderings = $newRenderings
    [void]$page.EndEdit()
}