Как отфильтровать посты по тегу в Hexo?
С помощью генератора статического сайта Hexo мне нужно отобразить все сообщения, которые помечены как featured
на целевой странице (index.ejs).
Теги определены в отдельных файлах сообщений:
title: Lorem
tags:
- featured
- web
Код для перебора всех сообщений выглядит следующим образом:
<% page.posts.each(function(item){ %>
// TODO: Only insert post if it contains tag 'featured'
<%- partial('_partial/project-excerpt', {item: item}) %>
<% }); %>
Функция is_tag
может использоваться только с текущей страницей. Необходимая функциональность будет if page.is_tag('featured') …
,
1 ответ
Решение
Чтобы отобразить все сообщения на странице индекса, вы должны получить доступ site
объект, а не page
так как page
Объект имеет только определенное количество сообщений (per_page
переменная в config.yml
).
И чтобы фильтровать только сообщения с тегами "функции", вы можете использовать этот запрос
site.tags.findOne({name: 'featured'}).posts.forEach(function(post) {
// do what you have to do with each post
})