#shopify #liquid
#shopify #liquid
Вопрос:
В настоящее время я пытаюсь отобразить содержимое на основе тегов продуктов, которые назначены продуктам в Shopify.
Это работает нормально, но моя проблема в том, что у меня есть два тега, которые содержат частично одно и то же имя тега, поэтому я получаю оба набора содержимого, отображаемых во внешнем интерфейсе.
Один тег показывает обязательное поле «r-[tag-name]», а другой показывает то же поле, но оно не является обязательным «[tag-name]».
Очевидно, я знаю, что это связано с тем, что я использую ‘contains’, поэтому логика верна для обоих, когда применяется любой тег, но я пытался использовать ‘==’ (равно), но когда я это делаю, вообще ничего не появляется :/
Что я хотел бы знать, так это то, что мне нужно изменить, чтобы утверждение было истинным только в том случае, если существует тег, который точно совпадает с оператором if .
Я новичок в Liquid, поэтому буду признателен за любую помощь!
<!--Convert the tags into a string by joining them with COMMA-->
{% assign productTags = product.tags | join: ', ' %}
<!--Now Check for the desired tag name-->
{% if productTags contains 'r-custom-name-one' %}
<p class="line-item-property__field">
<label for="name-one">Name One:</label>
<input class="required" id="name-one" type="text" name="properties[Name One]">
</p>
{% endif %}
{% if productTags contains 'custom-name-one' %}
<p class="line-item-property__field">
<label for="name-one">Name One:</label>
<input id="name-one" type="text" name="properties[Name One]">
</p>
{% endif %}
Комментарии:
1. Вы ищете точное совпадение с «пользовательским именем-один» в теге или ожидаете, что тег на продукте будет частично совпадать с «пользовательским именем-один»?
Ответ №1:
Мне нужно изменить так, чтобы утверждение было истинным только в том случае, если существует тег, который точно совпадает с оператором if
Это должно сделать это:
{% for tag in product.tags %}
{% if tag == 'r-custom-name-one' %}
<p class="line-item-property__field">
<label for="name-one">Name One:</label>
<input class="required" id="name-one" type="text" name="properties[Name One]">
</p>
{% break %}
{% endif %}
{% if tag == 'custom-name-one' %}
<p class="line-item-property__field">
<label for="name-one">Name One:</label>
<input id="name-one" type="text" name="properties[Name One]">
</p>
{% break %}
{% endif %}
{% endfor %}
Я добавил {% break %}
, который будет
Заставляет цикл останавливать итерацию при обнаружении
break
тега.
Я предположил, что после того, как тег найден, вам не нужно продолжать перебирать остальные теги!