В моих продуктах есть настраиваемые поля, которые я настроил с целью настраиваемой сортировки. Некоторые продукты принадлежат к нескольким категориям, поэтому я создаю настраиваемое поле для каждой категории, к которой принадлежит продукт. Я установил имя настраиваемого поля для имени категории и значение настраиваемого поля для порядка сортировки. Теперь мне нужно вызвать соответствующее имя и значение на странице категории.

Я пробовал следующее:

{{#filter custom_fields 'category.name' property='name'}}
{{#filter custom_fields category.name property='name'}}
{{#filter custom_fields '{{category.name}}' property='name'}}
{{#filter custom_fields {{category.name}} property='name'}}

Можно ли использовать имя категории в качестве фильтра имени настраиваемого поля? Не могли бы вы объяснить / показать, как это сделать? TYIA

1
NotJay 29 Мар 2021 в 23:34

1 ответ

Лучший ответ

Второй правильный. Однако, поскольку вы находитесь в контексте карточки продукта (каждая категория.продукты), контекст категории теряется. Вам нужно будет добавить ../ (или 2), чтобы вернуться на уровень выше. Например: {{#filter custom_fields ../category.name property='name'}}.

Однако это все еще может не сработать. В прошлом я сталкивался с проблемами, когда работал с компонентом и пытался получить родительский контекст. Простой способ гарантировать, что переменная передается должным образом, - это указать ее в строке, которая включает компонент карты. Вероятно, он находится в файле grid.html и будет выглядеть примерно так: {{>components/products/card settings=../settings show_compare=../show_compare show_rating=../settings.show_product_rating theme_settings=../theme_settings customer=../customer event=../event position=(add @index 1)}}.

Просто добавьте сюда название категории, например: {{>components/products/card settings=../settings show_compare=../show_compare show_rating=../settings.show_product_rating theme_settings=../theme_settings customer=../customer event=../event position=(add @index 1) category_name=../category.name}}.

Теперь вы можете изменить исходный код фильтра, чтобы просто использовать новую переменную: {{#filter custom_fields category_name property='name'}}.

2
Matt Coy 29 Мар 2021 в 20:54