Shopify / liquid - добавление классов и удаление введенного текста - PullRequest
0 голосов
/ 05 мая 2018

Я работаю над темой Shopify (шифер) с очень ограниченным опытом. Мне нужно добавить несколько классов, которыми я управлял на изображениях, но не могу найти способ сделать это на привязке, включенной в <h2 class="mosaic__title p-name">{{ item.title | link_to: item.url }}</h2>.

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

<del>{{ item.compare_at_price | money }}</del>
{% assign sale_price = item.price | money %}
{{ 'products.product.on_sale_from_html' | t: price: sale_price }}

Я пытался удалить .on_sale_from_html и t: price: sale_price, но это не сработало / сломалось.

Кто-нибудь может посоветовать это? Спасибо!

Полный раздел кода для справки:

<div class="mosaic__caption">
  <h2 class="mosaic__title p-name">{{ item.title | link_to: item.url }}</h2>

  {% if item.object_type == 'product' %}
    <p class="mosaic__value">
      {% if item.compare_at_price > item.price %}
        {% if item.price_varies %}
          <del>{{ item.compare_at_price | money }}</del>
          {% assign sale_price = item.price | money %}
          {{ 'products.product.on_sale_from_html' | t: price: sale_price }}
        {% else %}
          {{ 'products.product.on_sale' | t }}
          <data itemprop="price" class="p-price">{{ item.price | money }}</data>
        {% endif %}
        <data class="visually-hidden p-price">{{ 'products.product.regular_price' | t }}</data>
      {% else %}
        {% if item.price_varies %}
          {% assign price = item.price | money %}
          <data itemprop="price" class="p-price">{{ 'products.product.from_text_html' | t: price: price }}</data>
        {% else %}
          <data itemprop="price" class="p-price">{{ item.price | money }}</data>
        {% endif %}
      {% endif %}
      {% unless item.available %}
      {{ 'products.product.sold_out' | t }}
      {% endunless %}
    </p>
  {% else %}
    <p>{{ item.content | strip_html | truncatewords: 50 }}</p>
  {% endif %}
</div>

1 Ответ

0 голосов
/ 05 мая 2018

Начнем с фильтра link_to. Этот код: <h2 class="mosaic__title p-name">{{ item.title | link_to: item.url }}</h2>

link_to берет URL-адрес и просто создает HTML-элемент ссылки с предоставленным текстом и ссылкой.

Таким образом, приведенный выше код такой же, как:

<h2 class="mosaic__title p-name">
  <a href="{{item.url}}">{{item.title}}</a>
</h2>

Таким образом, вы можете написать в качестве альтернативы приведенный выше код или использовать фильтр замены, чтобы добавить атрибут класса, например, так: item.title | link_to: item.url | replace: '<a', '<a class="foo"'


Что касается вашего второго вопроса, то такие выводы {{ 'products.product.on_sale_from_html' | t: price: sale_price }} указывают, что это переводимый текст.

Это означает, что ваш текст находится в вашем файле перевода (обычно en.default.json в вашей папке locales), поэтому вы можете изменить текст оттуда.

Что касается добавляемого текста, похоже, что ваша переведенная строка содержит следующую переменную {{ price }}, которая заменяется переданной переменной price: sale_price.

PS: Ознакомьтесь с документацией в Shopify, где эти функции описаны более подробно: https://help.shopify.com/themes/liquid/filters/url-filters#link_to https://help.shopify.com/themes/development/internationalizing/locale-files#values

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...