0

我是 Umbraco 的新手,我正在努力获取未发布的内容。

如我们的 Umbraco 教程中所述,我创建了一个文档类型文章和文章项目。在内容部分,我创建了五篇文章作为博客,其中两篇未发表。我在网站上收到了三篇已发表的文章。现在我想获取未发布的内容而不是发布的内容。我怎么能做到这一点?

4

1 回答 1

1

您可以使用ContentService来获取未发布的内容,但在使用 ContentService 时要非常小心,因为该服务直接从 Umbraco 数据库而不是缓存中获取数据,这会在您的网站上造成很多问题,例如网站被非常慢,尤其是当很多人访问您的网站时。

这是一个使用 ContentService 的示例,您可以查看此博客文章了解更多详细信息。

var contentService = new ContentService();
IContent content = contentService.GetById(123); // 123 is the nodeId

这是另一个例子;

var content = ApplicationContext.Current.Services.ContentService.GetById(123);

对于最新版本的 Umbraco(截至今天的 v9),您应该在构造函数中使用依赖注入来获取 ContentService:

public class MyClass
{
    private IContentService _contentService;
    
    public MyClass(IContentService contentService)
    {
        _contentService = contentService;
    }
}

更新:今天我有机会为 Umbraco v7 项目添加一些屏幕截图,请参阅下面如何通过 ContentService 获取未发布的内容 - 对于 Umbraco v8 项目,情况可能会有所不同:

在此处输入图像描述

于 2022-02-23T16:55:33.290 回答