Kentico - 显示基于 categories/subcategories 的相关文章列表

Kentico - Display List of related articles based on categories/subcategories

我有很多文章,每篇都分配在不同的 categories/subcategories 下。 我想做的是在单个文章的末尾,我将根据当前文章所在的类别显示相关文章列表。我已经添加了一个 Repeater,但真的不知道要在 Content Filter/Category Name 中放入什么来实现此目的。希望它不是那么复杂。感谢您的输入!

This article 可能会给您一些创建过滤器的想法,但我不认为这正是您想要的。它确实表明您必须通过 API.

获取文件

你可以做一个自定义查询,像这样

    SELECT *
FROM dbo.View_CMS_Tree_Joined vctj
WHERE vctj.DocumentID IN
(
    SELECT DocumentID
    FROM CMS_DocumentCategory
    WHERE CategoryID IN
    (
        SELECT CategoryID
        FROM CMS_Category
        WHERE dbo.CMS_Category.CategoryName = 'Name Here'
    )
);

如果需要,您可以在 Portal 中实现此目的而无需触及代码。以下步骤是您实现它的方法(尽管它们很粗糙并且准备就绪!)

  1. 在您的 文章 页面类型中,创建一个新查询。此查询作业将 link 现有 Document 到共享完全相同类别的任何其他人。您的查询应如下所示:
    SELECT ##TOPN## ##COLUMNS##
    FROM View_CMS_Tree_Joined rel
    INNER JOIN CMS_DocumentCategory relcat ON relcat.DocumentID=rel.DocumentID
    INNER JOIN CMS_DocumentCategory doccat ON relcat.CategoryID=doccat.CategoryID
    WHERE ##WHERE##
    AND rel.DocumentID  doccat.DocumentID
    ORDER BY ##ORDERBY##
  1. 现在,将您的 Repeater 替换为 Repeater with custom query。在设置中,使用选择器控件为 查询名称 字段选择新创建的查询。
  2. WHERE 子句设置为 doccat.DocumentID={% CurrentDocument.DocumentID #%}
  3. 选择合适的转换,你应该就可以开始了。

此方法需要精确的类别匹配,因此 Categories > Cars > Mazda 不会匹配到 Categories > Cars.

希望这有用:)