通过我们的迁移服务中的短代码清理选项,在从 WordPress 导入到 Shopify 时,文章中包含的短代码将自动转换为能在 Shopify 主题中正确显示的格式。本页面将解释各短代码的具体行为,以及为防止意外重写而设置的安全功能。

1. 自动转换的主要短代码

以下短代码将自动替换为可在 Shopify 正文 (body_html) 中运行的 HTML 标签或嵌入式播放器。

[gallery](图片画廊)

在一个布局中显示多张图片的短代码。

  • 规范:将 ids 属性中的 ID 解析为实际的图片 URL,并根据 columns(列数)设置以网格布局输出。
  • 输出示例:每张图片都被包裹在 figure 标签中,整体被包裹在一个带有样式调整类名的 div 容器中。

[caption](图片说明)

为图片添加说明(标题)的短代码。

  • 规范:将图片标签与文本分离,并将其转换为语义化的 <figure><figcaption> 结构。

[audio] / [video](音频和视频播放器)

用于在文章内播放音频或视频文件的短代码。

  • 规范:转换为浏览器标准的 <audio controls><video controls> 标签。对于视频,还会保留 poster(封面图)属性。

[embed](嵌入外部内容)

用于嵌入 YouTube Vimeo 等外部网站的短代码。

  • 规范:自动识别 YouTube Vimeo URL,并将其转换为嵌入式的 <iframe> 播放器。出于安全考虑,其他 URL 将以外部链接的形式输出。

[playlist](播放列表)

以列表形式显示多个音频或视频文件的短代码。

  • 规范:将包含的项目输出为包含图片或文件名的项目符号列表,以防止链接失效。

2. 防止意外转换的安全功能

为了确保正文中的方括号 [...] 不会被误删或误转换,我们采用了以下安全规范:

仅限小写判定(区分大小写)

只有全部以小写书写的标签才会被识别为短代码。

  • 转换对象[gallery], [audio] 等。
  • 保护对象:包含大写字母或数字的表述,如 [Any], [This], [123] 等,将作为纯文本原样保留。

使用双方括号转义

WordPress 标准规范一致,可以通过书写双重方括号来避免转换。

  • 输入[[gallery]]
  • 输出[gallery](不作为短代码执行,而是作为文本显示)

未定义标签的保护

对于系统中未定义的未知标签,将按以下方式处理:

  • 封闭型 [tag]内容[/tag]:仅移除标签部分,“内容”必定会被保留。
  • 独立型 [tag]:除非包含在下文提到的黑名单中,否则将被视为文本原样保留。

3. 自动删除不必要的代码(黑名单)

在迁移到 Shopify 时,来自已知插件的冗余代码将被自动删除。

  • 目标关键词contact-form-7, mwform_formkey, gravityform, contact-form, rev_slider, layerslider, sitemap, addtoany, yoast_breadcrumb 等。
  • 目标前缀:所有以 vc_(来自 WPBakery)或 et_pb_(来自 Divi)开头的标签。

这些设置在面向开发者的配置文件 (shortcode-config.ts) 中管理,可以根据需要将特定标签添加到删除列表中。