Craft CMS:如何用单个Twig查询按板块日期排序混合展示两类条目
解决方案
要实现混合展示两个板块条目并按各自日期字段排序,你可以在Craft的条目查询里用orderBy结合SQL的CASE表达式,动态根据条目所属板块选择对应的排序字段。
直接用下面的Twig代码即可(记得替换成你实际的日期字段handle):
{% set entries = craft.entries .section(['events', 'latestNews']) .orderBy(" CASE WHEN section.handle = 'events' THEN events.yourEventDateHandle WHEN section.handle = 'latestNews' THEN latestNews.yourNewsDateHandle END DESC ") .all() %}
代码说明:
CASE语句会检查每个条目的板块handle,匹配到events就用活动日期字段排序,匹配到latestNews就用新闻日期字段排序DESC表示按日期降序排列(最新的内容在前),如果需要升序(最早的在前),把DESC改成ASC就行- 确保把
yourEventDateHandle和yourNewsDateHandle替换成你自己板块里实际的日期字段handle(比如Events板块的日期字段如果叫eventDate,就写events.eventDate)
这样查询出来的结果会同时包含两个板块的条目,并且各自遵循对应的日期排序规则,直接传给slick轮播组件用就行。
内容的提问来源于stack exchange,提问作者Mitesh Tandel
相关产品推荐
相关产品推荐

