隐藏 Shopify 产品描述中的文本
Hide text in Shopify product description
只是在寻找一些关于 Shopify 的指导。我想做的是用 [#size] [/size] 标签(或类似标签)将产品描述中的文本包装起来...然后抓取此文本并将其放入弹出窗口中。
我已经完成了大部分工作,因此它创建了弹出按钮并且弹出窗口工作正常,甚至包括产品描述中的文本,但是,产品描述中的文本保留在那里而不是将其隐藏到弹出窗口中,我现在正在抓紧救命稻草试图修复它...
如有任何想法,我们将不胜感激,在此先感谢。
这是我在 product-template.liquid
中的代码
{% if product.description contains '[#size]' or product.description contains '[#video]' or product.description contains '[#other]' %}
<div class="product-extra">
{% if section.settings.show_product_size_chart and product.description contains '[#size]' %}
{% assign shortcode_description = product.description | split: '[/size]' | first | split: '[#size]' | last %}
<a class="product-size-chart fancybox" href="#product-size-chart"><i class="fas fa-ruler"></i> {{ 'products.product.sizing' | t }}
<div id="product-size-chart" style="display: none;">
{{ shortcode_description }}
</div>
</a>
{% endif %}
{% if section.settings.show_product_video and product.description contains '[#video]' %}
{% assign shortcode_description = product.description | split: '[/video]' | first | split: '[#video]' | last %}
<a class="product-video fancybox" href="#product-video"><i class="fas fa-play-circle"></i> {{ 'products.product.video' | t }}
<div id="product-video" style="display: none;">
{{ shortcode_description }}
</div>
</a>
{% endif %}
{% if section.settings.show_product_model and product.description contains '[#other]' %}
<a class="product-model fancybox" href="#product-model"><i class="fas fa-info-circle"></i> {{ 'products.product.model' | t }}
<div id="product-model" style="display: none;">
{% assign shortcode_description = product.description | split: '[/other]' | first | split: '[#other]' | last %}
{{ shortcode_description }}
</div>
</a>
{% endif %}
</div>
{% endif %}
您可以创建一个名为 shortcode.liquid
的片段
在代码段中输入以下代码:
{%- capture open_tag -%}[#{{tag}}]{%- endcapture -%}
{%- capture close_tag -%}[/{{tag}}]{%- endcapture -%}
{%- assign text_content = content | split: open_tag | last | split: close_tag | first -%}
{%- capture remove_shortcode -%}{{open_tag}}{{text_content}}{{close_tag}}{%- endcapture -%}
{%- assign new_content = content | remove: remove_shortcode -%}
你这样调用代码段:
{%- include 'shortcode' content: product.content, tag: 'size' -%}
你在哪里传递内容(在这种情况下是 product.content )和你想要定位的简码(在这种情况下是 尺寸 )
调用代码段后,您有两个变量:
{{text_content}}
这将 return 简码
之间的内容
{{new_content}}
- 这将是 return 新内容,但删除了简码
重要 - 此代码段仅适用于同一短代码的单个实例,a.k.a你不能有两个 size
短代码实例。
只是在寻找一些关于 Shopify 的指导。我想做的是用 [#size] [/size] 标签(或类似标签)将产品描述中的文本包装起来...然后抓取此文本并将其放入弹出窗口中。
我已经完成了大部分工作,因此它创建了弹出按钮并且弹出窗口工作正常,甚至包括产品描述中的文本,但是,产品描述中的文本保留在那里而不是将其隐藏到弹出窗口中,我现在正在抓紧救命稻草试图修复它...
如有任何想法,我们将不胜感激,在此先感谢。
这是我在 product-template.liquid
{% if product.description contains '[#size]' or product.description contains '[#video]' or product.description contains '[#other]' %}
<div class="product-extra">
{% if section.settings.show_product_size_chart and product.description contains '[#size]' %}
{% assign shortcode_description = product.description | split: '[/size]' | first | split: '[#size]' | last %}
<a class="product-size-chart fancybox" href="#product-size-chart"><i class="fas fa-ruler"></i> {{ 'products.product.sizing' | t }}
<div id="product-size-chart" style="display: none;">
{{ shortcode_description }}
</div>
</a>
{% endif %}
{% if section.settings.show_product_video and product.description contains '[#video]' %}
{% assign shortcode_description = product.description | split: '[/video]' | first | split: '[#video]' | last %}
<a class="product-video fancybox" href="#product-video"><i class="fas fa-play-circle"></i> {{ 'products.product.video' | t }}
<div id="product-video" style="display: none;">
{{ shortcode_description }}
</div>
</a>
{% endif %}
{% if section.settings.show_product_model and product.description contains '[#other]' %}
<a class="product-model fancybox" href="#product-model"><i class="fas fa-info-circle"></i> {{ 'products.product.model' | t }}
<div id="product-model" style="display: none;">
{% assign shortcode_description = product.description | split: '[/other]' | first | split: '[#other]' | last %}
{{ shortcode_description }}
</div>
</a>
{% endif %}
</div>
{% endif %}
您可以创建一个名为 shortcode.liquid
的片段在代码段中输入以下代码:
{%- capture open_tag -%}[#{{tag}}]{%- endcapture -%}
{%- capture close_tag -%}[/{{tag}}]{%- endcapture -%}
{%- assign text_content = content | split: open_tag | last | split: close_tag | first -%}
{%- capture remove_shortcode -%}{{open_tag}}{{text_content}}{{close_tag}}{%- endcapture -%}
{%- assign new_content = content | remove: remove_shortcode -%}
你这样调用代码段:
{%- include 'shortcode' content: product.content, tag: 'size' -%}
你在哪里传递内容(在这种情况下是 product.content )和你想要定位的简码(在这种情况下是 尺寸 )
调用代码段后,您有两个变量:
{{text_content}}
这将 return 简码
{{new_content}}
- 这将是 return 新内容,但删除了简码