更改主题中的 shopify 标签

Changing shopify labels in theme

我对 Shopify 主题很陌生,我需要更改我正在使用的主题中 Shopify“产品尺寸”和“颜色”的标签,但我对其中的循环感到困惑改变它。

这是我最接近的代码

    {% form 'product', product, class:form_classes, novalidate: 'novalidate' %}
  {% unless product.has_only_default_variant %}
    {% for option in product.options_with_values %}
      <div class="selector-wrapper js product-form__item">
        <label {% if option.name == 'default' %}class="label--hidden" {% endif %}for="SingleOptionSelector-{{ forloop.index0 }}">
          {{ option.name }}
        </label>
        
        {% assign optionName = option.name | downcase %}

如果我更改 option.name 它会更改两个标签名称,而不仅仅是单个名称。我附上了产品页面的屏幕截图以帮助解释这一点。我认为这对于经验丰富的 shopify 专家来说是个愚蠢的问题。非常感谢任何帮助。

顺便说一句,它使用这些标签的原因是因为所有库存都是从第三方库存管理系统导入的。

听起来您必须依靠字符串操作才能将外部名称转换为 customer-friendly。有几种方法可以做到这一点 - 最好的方法可能取决于导入的选项名称的一致性或多样性。

要获得 Liquid 中可用的字符串操作函数的完整列表,我还会将您指向 Shopify Liquid Reference,您将在那里找到更多详细信息。

方法 1:简单删除过滤器

使用| remove 删除我们不想保留的已知位。像所有过滤器一样,它们可以链接在一起。

示例:

{{ option.name | remove: 'PA_' | remove: 'CLOTHING-' }}

方法 2:拆分分隔符

如果您需要删除许多不同的前缀,| split 过滤器可能会有用。此命令将字符串分解为一个数组,我们可以使用 firstlast 过滤器之类的东西来获取我们需要的位。

示例:

{{ option.name | split: '_' | last | split: '-' | last }}

方法 3:大量手动映射

如果您的产品的值不遵循任何常规模式,您可能会陷入必须手动将部分或全部选项名称映射到友好值的位置。如果您发现自己处于困境,case 语句可能是您的 best-of-the-bad 选项:

示例:

{% case option.name %}
  {% when 'PA_CLOTHING-SIZE' %}
    {% assign friendly_name = 'Size' %}
  {% when 'PA_COLOR' %}
    {% assign friendly_name = 'Color' %}

  {% default %}
    {% assign friendly_name = option.name %}

{% endcase %}
{{ friendly_name }}