Shopify проверить, существует ли Metafield?

Я хочу скрыть контент, если метаполя для продукта пусты, но сейчас он возвращает его для всех страниц, что означает, что мой оператор if где-то сломан.

Страница продукта

{% if product.metafields.review %}
  {% include 'extra-review' %}
{% else %}
{% endif %}

Страница фрагмента обзора (extra-review.liquid)

{% assign review = product.metafields.review %}
{% assign key = 'author' %}
{% assign key = 'author-img' %}
{% assign key = 'long' %}

<p> Hello world </p>

Любая помощь будет блестящей

РЕДАКТИРОВАТЬ

Добавлен макет метаполя обзора

введите здесь описание изображения


person JMKelley    schedule 01.12.2016    source источник


Ответы (2)


Чтобы проверить, существует ли пространство имен, вы можете сравнить его с blank. Например:

{% if product.metafields.review != blank %}
  ...
{% endif %}

Вы также можете использовать size, если хотите, чтобы у вас было три ключа. Здесь мы просто выводим размер:

{{ product.metafields.review.size }}

Более подробную информацию о правдивости / ложности можно найти в документации Shopify: https://help.shopify.com/themes/liquid/basics/true-and-false

person Jason    schedule 13.12.2016
comment
Сработало как абсолютное очарование - большое спасибо @Jason - person JMKelley; 13.12.2016