Shopify - Сократить / изменить параметры списка фильтра «Сортировать по» (не просто изменить порядок по умолчанию) - PullRequest
0 голосов
/ 17 апреля 2020

Я хочу сократить количество вариантов, доступных пользователям для сортировки на моем веб-сайте. Список параметров по умолчанию слишком длинный (например, нет необходимости сортировать по алфавиту, что является одним из параметров по умолчанию), и я, возможно, также хотел бы перефразировать некоторые из них.

Я считаю, что код ниже самый актуальный. Я не могу найти, где хранятся sort_options. Я использую тему «Дебют».

Обратите внимание, что я не пытаюсь создавать какие-либо новые критерии для сортировки, а только для уменьшения параметров и их переименования.

              {% if section.settings.sort_enable %}
                <div class="filters-toolbar__item-child">
                  {%- assign sort_by = collection.sort_by | default: collection.default_sort_by -%}
                  <label class="filters-toolbar__label select-label" for="SortBy">{{ 'collections.sorting.title' | t }}</label>
                  <div class="filters-toolbar__input-wrapper select-group">
                    <select name="sort_by" id="SortBy"
                      class="filters-toolbar__input hidden"
                      aria-describedby="a11y-refresh-page-message a11y-selection-message"
                      data-default-sortby="{{ collection.default_sort_by }}">
                      {%- for option in collection.sort_options -%}
                        <option value="{{ option.value }}" {% if option.value == sort_by %}selected="selected"{% endif %}>{{ option.name }}</option>
                      {%- endfor -%}
                    </select>
                    {% include 'icon-chevron-down' %}
                  </div>
                </div>
              {% endif %}

1 Ответ

2 голосов
/ 18 апреля 2020

Создайте переменную с ключами параметров, которые вы хотите скрыть, а затем просто проверьте, является ли текущий ключ параметра частью этой переменной в пределах for l oop.

{%- assign sortOptionsToSkip = "title-ascending,title-descending" -%}
{%- for option in collection.sort_options -%}
    {%- if sortOptionsToSkip contains option.value -%}
      {%- continue -%}
  {%- endif -%}
  <option value="{{ option.value }}" {% if option.value == sort_by %}selected="selected"{% endif %}>{{ option.name }}</option>
{%- endfor -%}

Или просто используйте Если вам нужно скрыть только параметры сортировки по алфавиту, выполните следующие действия:

{%- for option in collection.sort_options -%}
  {%- if option.value contains "title" -%}
    {%- continue -%}
  {%- endif -%}
  <option value="{{ option.value }}" {% if option.value == sort_by %}selected="selected"{% endif %}>{{ option.name }}</option>
{%- endfor -%}

Используйте case/when управляющие теги потока , чтобы использовать другие имена параметров, снова сопоставив их по ключу .

{%- for option in collection.sort_options -%}
  <option value="{{ option.value }}" {% if option.value == sort_by %}selected="selected"{% endif %}>
    {% case option.value %}
        {%- when "best-selling" -%}
          Best
      {%- when "created-ascending" -%}
            Old first
      {%- else -%}
          {{ option.name }}
      {%- endcase -%}
    </option>
{%- endfor -%}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...