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 中实现此目的而无需触及代码。以下步骤是您实现它的方法(尽管它们很粗糙并且准备就绪!)
- 在您的 文章 页面类型中,创建一个新查询。此查询作业将 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##
- 现在,将您的 Repeater 替换为 Repeater with custom query。在设置中,使用选择器控件为 查询名称 字段选择新创建的查询。
- 将 WHERE 子句设置为
doccat.DocumentID={% CurrentDocument.DocumentID #%}
- 选择合适的转换,你应该就可以开始了。
此方法需要精确的类别匹配,因此 Categories > Cars > Mazda 不会匹配到 Categories > Cars.
希望这有用:)
我有很多文章,每篇都分配在不同的 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 中实现此目的而无需触及代码。以下步骤是您实现它的方法(尽管它们很粗糙并且准备就绪!)
- 在您的 文章 页面类型中,创建一个新查询。此查询作业将 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##
- 现在,将您的 Repeater 替换为 Repeater with custom query。在设置中,使用选择器控件为 查询名称 字段选择新创建的查询。
- 将 WHERE 子句设置为
doccat.DocumentID={% CurrentDocument.DocumentID #%}
- 选择合适的转换,你应该就可以开始了。
此方法需要精确的类别匹配,因此 Categories > Cars > Mazda 不会匹配到 Categories > Cars.
希望这有用:)