如何加载相关博客post?

How to load related blog post?

我使用 Orchard CMS。我的页面中有两个 DIV。在第一个 DIV 中找到了博客 post 的详细信息。我想在另一个 DIV.

中找到相同的分类 post

我该怎么做?

要为系统中的所有帖子动态实现此目的,您可以将新部分附加到名为 RelatedPostsPartBlogPost 类型,然后使用以下驱动程序:

protected override DriverResult Display(RelatedPostsPart part, string displayType, dynamic shapeHelper) {
    return ContentShape("Parts_Blogs_RelatedPosts", () => {
        // To prevent infinite loop
        if (!displayType.Equals("Detail", StringComparison.OrdinalIgnoreCase)) {
            return null;
        }

        var blogPast = part.As<BlogPostPart>();

        if (blogPast == null || blogPast.BlogPart == null) {
            return null;
        }

        var blog = blogPast.BlogPart;

        // You can set the count in blog post settings to be configurable
        var blogPosts = _contentManager.Query(VersionOptions.Published, "BlogPost")
            .Join<CommonPartRecord>().Where(cr => cr.Container.Id == blog.Id && cr.Id != part.Id)
            .OrderByDescending(cr => cr.CreatedUtc)
            .Slice(0, 5)
            .Select(ci => ci.As<BlogPostPart>());

        var list = shapeHelper.List();
        list.AddRange(blogPosts.Select(bp => _contentManager.BuildDisplay(bp, "Summary")));

        var blogPostList = shapeHelper.Parts_Blogs_BlogPost_List(ContentItems: list);

        return shapeHelper.Parts_Blogs_RelatedPosts(ContentItems: blogPostList, Blog: blog);
    });
}

我们使用这个模块Related Content,认为它符合您的需求。