在Shopify中为博客标签设置元标题和描述

时间:2017-06-20 15:40:01

标签: shopify liquid

我开始将我的博客从wordpress迁移到shopify。我正在尝试使用博客标签将帖子分成不同的类别。

问题是标签的元标题是自动生成的,元描述是从博客页元描述中自动复制的。对于高级别的类别/标签页面来说,这将是糟糕的搜索引擎优化。

我采访了支持者,他说没有办法编辑这些信息。有人可以建议一种编辑主题文件的方法,为每个标签添加唯一的标题和描述吗?只有大约10个,但在每个页面加载时使用条件似乎非常糟糕?我不是编码员......

我发现的最接近的会是这样的吗?

How to edit content on pages for Collection Tags in Shopify

...几个小时后在theme.liquid中我试过在标题中做了以下似乎有效。



    
        {% if current_tags contains 'News' %}
        News page title
        {% elsif current_tags contains 'How To' %}
        how to page title
        {% else %}
      {{ page_title }}{% if current_tags %}{% assign meta_tags = current_tags | join: ', ' %} – {{ 'general.meta.tags' | t: tags: meta_tags }}{% endif %}{% if current_page != 1 %} – {{ 'general.meta.page' | t: page: current_page }}{% endif %}{% unless page_title contains shop.name %} – {{ shop.name }}{% endunless %}
      {% endif %}
      

我可以为元描述做类似的事情。只是想知道这是否是一种热门方式,它会花费很多页面加载时间吗?

1 个答案:

答案 0 :(得分:0)

您的解决方案不是很有活力。

有几种方法可以解决这个问题并使其完全动态化,因此您无需为每个其他标记编写任何代码。

以下是一个例子:

使用网址链接创建导航。标题将是标签名称,URL将是标题/描述。

所以这样:

Linklist菜单:

title.................../ URL...............
This is the meta title / #meta_title_tag1 
This is the meta desc / #meta_desc_tag1 

在头部分,你将有类似的代码:

{% assign tag_size = current_tags | size %}
{% assign meta_title = current_tags | prepend: 'meta_title_' %}
{% assign meta_desc = current_tags | prepend: 'meta_desc_' %}

{% if tag_size == 1 %}
    {% for link in linklists[settings.meta_nav].links %}
        {% assign url = link.url | split: "#" %}
        {% if url[1] == meta_title %}
            {{ link.title }}
        {% endif %}
        {% if  url[1] == meta_desc %}
            {{ link.title }}
        {% endif %}
    {% endfor %}
{% endif %}

分解代码:

{% assign tag_size = current_tags | size %}

我们创建tag_size变量,以便我们可以检查我们是否在标签页上,如果只有一个标签,因为用户可以添加第二个标签,然后我们的逻辑将无法工作。 (但如果你愿意,你可以获得第一个标签并仅为他应用元标题和描述)

{% assign meta_title = current_tags | prepend: 'meta_title_' %}
{% assign meta_desc = current_tags | prepend: 'meta_desc_' %}

我们在当前代码前加前缀,以检查标题和说明。

{% if tag_size == 1 %}
....
{% endif %}

这是检查标签是否仅为1的if

{% for link in linklists[settings.meta_nav].links %}
...
{% endfor %}

这里我们循环我们创建的导航菜单中的所有链接。其中settings.meta_nav是主题的“设置架构”中的link_list字段。如果您愿意,可以对导航手柄进行硬编码,这是您的选择。

{% assign url = link.url | split: "#" %}

这里我们从我们添加的“#”中删除网址。

{% if url[1] == meta_title %}
    {{ link.url }}
{% endif %}
{% if url[1] == meta_desc %}
    {{ link.url }}
{% endif %}

这里我们检查当前link.title是否等于我们创建的前缀标签,如果是,我们输出link.url,这是我们正在寻找的标题/描述。< / p>

如果您正在寻找大型内容并且想要使用textarea而不是文本字段,那么所有这一切都可以通过全局部分完成。