Мне нужно сгенерировать две кнопки, ссылающиеся на следующие и предыдущие сообщения из той же категории. Сообщения сортируются с использованием начального значения order
и целочисленного значения.
Мое решение все еще не идеально. Мне нужно исключить предыдущую кнопку для первого сообщения и следующую кнопку для последнего сообщения. Тем не менее, это не работает, и я не могу понять, почему. Это мой код:
{% capture the_cat %}{{page.categories | first}}{% endcapture %}
{%- assign sorted_posts = site.categories[the_cat] | sort: 'order' -%}
{%- for post in sorted_posts -%}
{% if post.url == page.url %}
{% assign post_index0 = forloop.index0 %}
{% assign post_index1 = forloop.index | plus: 1 %}
{% endif %}
{%- endfor -%}
{%- for post in sorted_posts -%}
{% if post_index0 == post.order %}
{% assign prev_post = post %}
{% endif %}
{% if post_index1 == post.order %}
{% assign next_post = post %}
{% endif %}
{%- endfor -%}
И наконец ...
{%- if prev_post != null -%} ... {%- endif -%}
{%- if next_post != null -%} ... {%- endif -%}
Основной l oop кажется правильным. В категории с 3 отсортированными сообщениями возвращается 1, 2, 3. Как это исправить? Может быть исправлено только с одним l oop, что делает код более эффективным? Спасибо!
PD: Я успешно использовал этот плагин , однако этот плагин сортирует сообщения по date
, а не по order
.