透過我們的遷移服務中的短代碼清理選項,在從 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) 中管理,可以根據需要將特定標籤添加到刪除列表中。