2016-12-01 2 views
0

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

Продукт

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

Обзор Snippet Страница (экстра-review.liquid)

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

<p> Hello world </p> 

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

EDIT

Добавлен обзор metafields компоновки

enter image description here

ответ

3

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

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

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

{{ product.metafields.review.size }} 

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

+0

Работал как абсолютный шарм - большое спасибо @ Джейсон – user3082823

2

Truthiness в жидкости не нравится Javascript. Я укусила этого несколько раз:

Ваш тест должен быть:

{% if product.metafields.review == true %} 
... 
{% endif %} 

и review в product.metafields.review пространства имен из metafields обзора. см. https://help.shopify.com/themes/liquid/objects/metafield

+0

Это, кажется, удаление кода, даже если существует metafields для текущего продукта? – user3082823

+0

Вы используете правильное пространство имен? См. Мой отредактированный ответ – bknights

+1

Добавил мою таблицу пространств имен metafields к вопросу. Они все просмотрены, проверили продукт с существующими метафорами, но они все еще не появляются :( – user3082823

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