Как отфильтровать посты по тегу в 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
})
Другие вопросы по тегам