shopify Мне нужно проверить, является ли текущая страница страницей коллекции, а не страницей одного продукта

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

Я имею в виду, например, что если кто-то переходит на страницу сбора обуви, я могу проверить с помощью collection.handle == 'Shoes', но если я выберу продукт с этой страницы, он все равно вернет мне истинное значение. Но я хочу, чтобы мое условие было истинным на если это страница коллекции. Спасибо за вашу помощь!


person cm_w89    schedule 08.10.2016    source источник


Ответы (4)


Используйте этот простой способ с помощью template:

{% if template contains 'collection' %}
    Do something
{% endif %}

По мере развития Shopify теперь вы можете использовать это:

{% if template.name == 'collection' %}
    Do something
{% endif %}
person Alice Girard    schedule 08.10.2016
comment
Также работает, если вам нужно проверить, находитесь ли вы на странице продукта, если в шаблоне содержится слово «продукт». - person Alice Girard; 08.10.2016
comment
Будьте осторожны ... любой продукт с названием, содержащим коллекцию, зарегистрируется для этого. Конечно, такой шанс редок, но он есть. - person Augie Gardner; 06.12.2017
comment
Точно нет. Переменная проверяет имя шаблона. Итак, если вы находитесь на странице продукта, переменная содержит «product». Даже если {{product.name}} содержит слово "Коллекция", это не связано с названием шаблона. - person Alice Girard; 07.12.2017
comment
Я думаю, что понял. Я перепутал это с местоположением href. Хорошо, спасибо - person Augie Gardner; 07.12.2017

Я хотел бы использовать:

{% if template == 'collection' %}
  Do something
{% endif %}

Потому что, если вы используете contains, а не == (равно), вы можете столкнуться с риском изменения в строке, если вы когда-либо создавали новый шаблон, содержащий коллекцию слов?

person Allsops    schedule 11.05.2018

Более безопасной альтернативой, позволяющей избежать редких случаев, когда шаблоны плохо названы, было бы использовать request.page_type - см. документы Shopify

{% if request.page_type == 'collection' %}
  Do something
{% endif %}
person codinghands    schedule 08.06.2020

Вы можете попробовать это в состоянии.

{%if request.page_type == "collection" %} 
--- True if visit collection page or sub collection page. ---
{% endif %}

Спасибо.

person Kishan Mehta    schedule 09.02.2021