Дескрипторы объекта
Дескрипторы (handles) используются для доступа к объектам Ликвида. По умолчанию, дескриптор - это название объекта, представленный в нижнем регистре с пробелами и другими символами замененными на дефисы (-).
Для примера, страница с названием "О нас" может быть получена в Ликвид-файле с использованием дескриптора "о-нас", как показано ниже:
<!-- контент страницы "О нас" -->
{{ pages['о-нас'].content }}
В этой статье
Как создаются дескрипторы
Странице с названием "Рубашка" автоматически присвоится дескриптор "рубашка". Если ранее другой странице уже был присвоен дескриптор "рубашка", то для новосозданной будет использовано автоматический инкремент. Другими словами, новым страницам с названием "Рубашка" будет присвоен дескриптор "рубашка-1" или "рубашка-2" и т.д.
При создании дескриптора пробел в названии страницы заменяется символом тире. Например, странице с названием "Название новой футболки" автоматически присвоится дескриптор "название-новой-футболки".
Также дескриптор определяет URL страницы. Например, страница с дескриптором "белая-рубашка" будет иметь URL https://my-shop.myshopify.com/pages/белая-рубашка.
В темах Shopify разработчики часто используют статические дескрипторы для страниц, товаров или меню. Чтобы сохранить работоспособность элемента и функций дизайна, Shopify не изменяет дескриптор при изменении названия объекта (страницы, товара, меню и т.д.).
То есть, если вы поменяете название страницы с "О нас" на "Наша компания", то дескриптор останется прежний - "о-нас". При необходимости, вы можете изменить дескриптор вручную.
Доступ к атрибутам дескриптора
Во многих случаях вы знаете название дескриптора объекта, доступ к которому вы хотите получить. Чтобы использовать его вы можете применить один из способов обращения к объекту - с использованием квадратных скобок (["дескриптор"]) или с использованием точечной нотации (.дескриптор).
{{ pages['о-нас'].title }}
{{ pages.о-нас.title }}
В обоих случаях код выведет название страницы:
О нас
О нас
Заметьте, что дескриптор запрашивается из объекта pages, а не page.
Вместо прямого указания дескриптора вы также можете задать объект из редактора темы. Эта возможность полезна тем разработчикам, которые хотят дать пользователям своих тем возможность выбирать, какой контент отображать в своей теме.
{% for product in collections[settings.home_featured_collection].products %}
{{ product.title }}
{% endfor %}