删除Sitecore中的所有引用项 [英] Remove All Referrer Items in Sitecore

查看:8
本文介绍了删除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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆