2016-08-17 3 views
1

Использование генератора статического сайта Hexo Мне нужно отобразить все сообщения, помеченные как featured на целевой странице (index.ejs).Как фильтровать сообщения по тегу в Hexo?

теги определяются в отдельных почтовых файлов:

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') ….

ответ

2

Для отображения всех сообщений на индексной странице, вы должны получить доступ к 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 
}) 
+1

Спасибо! Я закончил использовать его так: <% site.tags.findOne ({name: 'featured'}). Posts.sort ('date', -1) .limit (5) .each (function (post) {% > <% - partial ('_ partial/project-excerpt', {item: post})%> <% })%> ' – Pwdr

+0

Спасибо, что вы создали страницу для отображения всех сообщений, относящихся к определенному тегу? –

+0

Short answer: создайте новую шестнадцатеричную страницу с макетом 'custom-tag-layout', создайте макет (файл)' custom-tag-layout', используйте этот запрос, чтобы получить все сообщения и построить html. Если вам нужна дополнительная информация , создайте вопрос, я отвечу на него. –

 Смежные вопросы

  • Нет связанных вопросов^_^