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

在Shopify中为博客标签设置元标题和描述,shopify,liquid,Shopify,Liquid,我开始将我的博客从wordpress迁移到shopify。我正在尝试使用博客标签将文章分成不同的类别 问题是标签的元标题是自动生成的,而元描述是从博客页面元描述中自动复制的。对于高级分类/标签页面来说,这将是一个糟糕的SEO 我和支持我的人谈过,他们说没有办法编辑这些信息。有人能建议一种编辑主题文件的方法,为每个标签添加独特的标题和描述吗?将只有大约10个,但在每个页面加载上使用条件似乎非常糟糕?我不是编码员 我找到的最接近的是这样的东西 …几个小时后,在theme.liquid中,我尝试在标

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

问题是标签的元标题是自动生成的,而元描述是从博客页面元描述中自动复制的。对于高级分类/标签页面来说,这将是一个糟糕的SEO

我和支持我的人谈过,他们说没有办法编辑这些信息。有人能建议一种编辑主题文件的方法,为每个标签添加独特的标题和描述吗?将只有大约10个,但在每个页面加载上使用条件似乎非常糟糕?我不是编码员

我找到的最接近的是这样的东西

…几个小时后,在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 %} {%如果当前_标记包含“新闻”%} 新闻页面标题 {%els如果当前的_标记包含“如何”} 如何设置页面标题 {%else%} {{page_title}{%if current_tags%}{%assign meta_tags=current_tags{124; join:','%}{{{{general.meta.tags'{124; t:tags:meta_tags}{%endif%}{%if current_page!=1%}{{{{general.meta page.page''t:page:page:current_page}{%endif%}{% {%endif%}
我可以为元描述做类似的事情。只是想知道这是否是一种简单的方法,它会花费很多页面加载时间吗

您的解决方案不是很动态

有几种方法可以实现这一点并使其完全动态化,这样就不必为每个附加标记编写任何代码

以下是一个例子:

创建带有网址链接的导航。标题将是标签名,URL将是标题/描述

{% if tag_size == 1 %}
....
{% endif %}
比如说:

链接列表菜单:

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\u size
变量,以便检查我们是否在标签页上,以及是否只有一个标签,因为用户可以添加第二个标签,然后我们的逻辑将无法工作。(但如果你愿意,你可以得到第一个标签,只为他应用元标题和描述)

为了检查标题和描述,我们在当前标记前面加了一个前缀

{% if tag_size == 1 %}
....
{% endif %}
这是检查标记是否仅为1的
if

{% for link in linklists[settings.meta_nav].links %}
...
{% endfor %}
在这里,我们循环我们创建的导航菜单中的所有链接。其中
settings.meta\u nav
是主题设置架构中的
链接列表
字段。你可以硬编码导航手柄,如果你喜欢这里,这是你的选择

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

在这里,我们从添加的“#”中删除URL

{% if url[1] == meta_title %}
    {{ link.url }}
{% endif %}
{% if url[1] == meta_desc %}
    {{ link.url }}
{% endif %}
在这里,我们检查当前的
link.title
是否与我们创建的前缀标记相等,如果相等,我们将输出它们的
link.url
,这就是我们要查找的标题/描述



如果您正在查找大型内容,并且喜欢使用文本区域而不是文本字段,那么所有这些都可以通过全局部分完成。

谢谢,这听起来不错,但我不确定如何实现它。我对Shopify和liquid一无所知。你是说浏览商店>导航>添加菜单?我试过了,但有4个错误:链接“meta_title_News”无效链接“meta_description_News”无效链接库无效URI:“新闻页面标题”链接库无效URI:“News meta description”这是我的错误,我忘了URL字段上有正则表达式检查。我们可以交换逻辑,而不是前缀标记以转到标题,它将转到前面带有
前缀的URL。查看更新的代码,是的,您需要转到
store>navigation>add menu
。谢谢,我现在创建的菜单没有错误。菜单名是否需要为settings.meta_nav或meta_nav才能使用您的代码?我在开头的头标签后面直接添加了你的代码,它似乎对两个菜单名都不起作用。我是否需要编辑head部分中的一些代码块?或者它需要在结束头标签之前?非常感谢如果您不知道如何在设置中创建字段,您可以硬编码它。如果您的导航名为示例导航,则其句柄将为
示例导航
,因此代码应为
链接列表[Sample nav]。链接
。谢谢,在我的示例中,url的值似乎被指定为meta_title_news,而meta_title被指定为meta_title_u[“news”],因此它们不匹配,因此不提供输出?