1

请提出任何以编程方式在 sitecore 中发布相关项目的方法。

PS:Deep = true 不起作用。

4

2 回答 2

0

我通过获取该项目的所有引用并使用发布管理器发布它来做到这一点。我使用 GetReferences() 来获取参考。

谢谢。

于 2021-06-10T09:16:02.403 回答
0

PublishOptions 类具有“PublishRelatedItems”属性。

您可以将它与 Brian Pedersen 编写的这种扩展方法一起使用(https://briancaos.wordpress.com/2019/09/13/sitecore-publish-items-using-the-publishmanager/

public static void PublishItem(
    this Item item, 
    PublishMode publishMode, 
    bool publishAsync = false, 
    bool deepPublish = false, 
    bool publishRelatedItems = false, 
    bool compareRevisions = false)
{
   
  if (item == null)
    return;

  PublishOptions publishOptions = new PublishOptions(item.Database, Database.GetDatabase("web"), publishMode, item.Language, DateTime.Now);
  publishOptions.RootItem = item;
  publishOptions.Deep = deepPublish;
  publishOptions.PublishRelatedItems = publishRelatedItems;
  publishOptions.CompareRevisions = compareRevisions;

  var handle = PublishManager.Publish(new PublishOptions[] { publishOptions });
  if (publishAsync)
    return;
  PublishManager.WaitFor(handle);
}
于 2021-05-27T20:11:00.880 回答