这个问题是关于HubSpot
/HuBl
的,但我也标记twig
为语法相似。
我有一个包含 7 张卡片的博客布局,结构如下:
作为参考,上面的类修饰符是:
blogCard
blogCard
blogCard--long
blogCard
blogCard
blogCard--wide
blogCard
现在,在 中HubL
,我正在尝试循环查看帖子,并且在loop.index
等于 的地方three
,我希望它显示一个标签为 的博客帖子video
。这篇video
文章将出现在blogCard--long
.
因此所有其他 6 张卡片都可以显示带有任何标签的帖子,但第 3 个 ( blogCard--long
) 必须是带有标签的帖子video
。
为此,我尝试了以下方法:
<!-- get all posts from blog -->
{% set all_posts = blog_recent_posts(blog_id, 21) %}
<!-- find all posts with the tag "video" -->
{% set video_posts = blog_recent_tag_posts(blog_id, 'video') %}
<!-- remove video posts from all_posts array -->
{% set posts = all_posts|difference(video_posts) %}
{% for post in posts %}
<div class="blogCard"></div>
{% if (loop.index == 3) %}
{% for video_post in video_posts %}
<div class="blogCard--long">{{ video_post.name }}</div>
{% endfor %}
{% endif %}
<div class="blogCard"></div>
{% if loop.index == 6 %}
<div class="latestBlogs__blog--wide"></div>
{% endif %}
<div class="blogCard"></div>
{% endfor %}
我基本上是posts
在所有帖子上运行初始循环,不包括带有video
. 然后,当遇到第三项时,我正在运行一个嵌套循环以从视频帖子中获取数据。但是,由于它是一个嵌套循环,它会在一个循环迭代中显示所有视频帖子。例如,如果我有两个带有 标记的帖子video
,在一次迭代中,它将显示这两个视频帖子。
只是想就我在这里应用的逻辑寻求建议,以及实现这一目标的最佳方法是什么?