删除Sitecore中的所有引用项 [英] Remove All Referrer Items in Sitecore
本文介绍了删除Sitecore中的所有引用项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在Sitecore中有一个布局项目,我可以通过链接按钮识别所有推荐人项目。我有成吨的推荐人项目,我想把它们全部删除。我希望我不必逐个检查每个项目来删除引用项目。我还希望不要删除引用的项目并重新创建它,因为这将为新项目生成不同的GUID。
是否可以通过Sitecore Desktop或SQL Server执行此操作?
推荐答案
您可以使用代码后台中的以下代码逻辑创建动态ASP.NET页。
public string RemoveReferenceLinks(string nodePath)
{
var db = Sitecore.Configuration.Factory.GetDatabase("master");
var item = db.GetItem(nodePath);
if (item == null) return new ItemLink[0];
var links = Globals.LinkDatabase.GetItemReferrers(item, true);
if (links.Length == 0)
{
return "No referrence found";
}
foreach (var link in links)
{
var sourceItem = link.GetSourceItem();
foreach (var item1 in sourceItem.Versions.GetVersions(true))
{
var field = item1.Fields[link.SourceFieldID];
var field2 = FieldTypeManager.GetField(field);
if (field2 == null) return;
using (new SecurityDisabler())
{
item1.Editing.BeginEdit();
field2.RemoveLink(link);
item1.Editing.EndEdit();
}
}
}
return "All reference removed";
}
这篇关于删除Sitecore中的所有引用项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文