Liquid / Jekyll: Как проверить, нет ли сообщений, если у вас есть два или более условий? - PullRequest
0 голосов
/ 16 октября 2018

У меня возникают проблемы с пониманием того, как я могу показать сообщение "нет записей" для определенного условного оператора с двумя переменными.

В этом примере, скажем, у меня есть коллекция "животных" - нана конкретной странице, я хотел бы раздел, который отображает «приматов, которые травоядные»:

  {% for animal in site.animal %}
    {% if animal.species == "primate" and animal.type == "herbivore" %}

      {{ animal.content }}

    {% endif %}
  {% endfor %}

Я хотел бы сделать что-то вроде этого (псевдокод):

{% if POSTS_EXIST_FOR_THIS_COMBO: (animal.species == "primate" and animal.type == "herbivore") %}
      {% for animal in site.animal %}
        {% if animal.species == "primate" and animal.type == "herbivore" %}
          {{ animal.content }}
        {% endif %}
      {% endfor %}
{% else %}
     There are no posts for this category.
{% endif %}

Примечание: это отличается от примеров типа this , потому что у меня есть два параметра для проверки.Может кто-нибудь предложить предложение по синтаксису?

1 Ответ

0 голосов
/ 17 октября 2018

Я думаю, что вы можете сделать следующее: сначала вы фильтруете все по species=primate из site.animal, а затем фильтруете по type=herbivore из этого пула, а затем проверяете, существует ли результат.

{% assign animals = site.animal | where:"species","primate" | where:"type","herbivore" %}

{% if animals %}
  {% for animal in animals %}
    {{ animal.content }}
  {% endfor %}
{% endif %}

Надеюсь, это поможет.

...