我可以通过使用 Jekyll 的标签数组来获取帖子吗?
Can I get posts by using an array of tags using Jekyll?
我正在为我的 Jekyll 网站开发一个 liquid 脚本来检索相关的 post。我想使用用于当前 post (post.tags) 的标签数组来执行与网站上也有一个 的其他 post 相匹配的查询](或更多) 个标签。如:
assign relatedPosts = site.posts | where 'tags', page.tags
但是文档中只提到传入一个字符串,而不是一个字符串数组?理想情况下,我希望使用 where 运算符 (或类似的东西) 来完成此操作,而不是遍历网站上的每个 post。
你说得对,你不能为 where
运算符提供数组,根据文档,你只能在那里传递一个字符串。
根据您要求的性质,您似乎无法避免遍历网站上的每个 post,因为基本上您想检查所有 post不同的标签。
一个可能的解决方案是先遍历您的 post 标签,然后根据所有站点 post 标签检查该标签,如下所示:
{% assign new_array = "" | split: "" %}
{% for tag in page.tags %}
{% assign tag_found = site.posts | where "tags": tag %}
{% assign new_array = new_array | concat: tag_found %}
{% endfor %}
OUTPUT: {{ new_array }}
我正在为我的 Jekyll 网站开发一个 liquid 脚本来检索相关的 post。我想使用用于当前 post (post.tags) 的标签数组来执行与网站上也有一个 的其他 post 相匹配的查询](或更多) 个标签。如:
assign relatedPosts = site.posts | where 'tags', page.tags
但是文档中只提到传入一个字符串,而不是一个字符串数组?理想情况下,我希望使用 where 运算符 (或类似的东西) 来完成此操作,而不是遍历网站上的每个 post。
你说得对,你不能为 where
运算符提供数组,根据文档,你只能在那里传递一个字符串。
根据您要求的性质,您似乎无法避免遍历网站上的每个 post,因为基本上您想检查所有 post不同的标签。
一个可能的解决方案是先遍历您的 post 标签,然后根据所有站点 post 标签检查该标签,如下所示:
{% assign new_array = "" | split: "" %}
{% for tag in page.tags %}
{% assign tag_found = site.posts | where "tags": tag %}
{% assign new_array = new_array | concat: tag_found %}
{% endfor %}
OUTPUT: {{ new_array }}