Q:网站有上千个页面,这上千个页面中都有一个相同的broken link,需要替换成正确的链接。如何才能简单,快速有效的完成这个动作呢
A:首先我们肯定会考虑这个动作的实现方式,
1、简单笨重的人工一个一个页面修改
2、通过写程序扩展实现
3、sitecore powershell
方一肯定是排除不可取的,方法二其实也是可以实现的,但是我觉得我想考虑一下方法三,之前我从来没有接触过,通过这个需求还学习一下powershell 语法。
最终实现的代码如下:
function GetAllLanguageVersions($item) { Get-Item $item.ProviderPath -Language "zh-CN" } function ProcessItem($item) { $html=$item.Fields["MyField"].Value -replace "http://www.baidu.com","http://www.cnblogs.com/wem520" $item.Editing.BeginEdit() $item.Fields["MyField"].Value=$html $item.Editing.EndEdit() } $itemsToProcess = Get-ChildItem -Path "/sitecore/content/home" | foreach {GetAllLanguageVersions($_)} if($itemsToProcess -ne $null) { $itemsToProcess | foreach {ProcessItem($_)} }
时间: 2024-12-25 19:34:02