技術文件目前產品線:Slim SEO 搜尋優化

Slim SEO 疑難排解:Shortcode 與區塊無法正常運作的解決方法

更新日期
閱讀時間
約 4 分鐘
來源狀態
generated-draft

本篇說明

當文章內容含有 shortcode 或特殊區塊(例如來自 WooCommerce、EDD Invoices 的功能)時,Slim SEO 在自動產生 meta description 過程中可能會先解析這些內容,導致頁面空白或功能失效。本篇說明如何透過程式碼片段告訴 Slim SEO 略過特定 shortcode 或區塊。

適合誰使用

使用 Slim SEO 免費版、且熟悉在 functions.php 加入程式碼的 WordPress 網站管理者

開始前準備

  • 文章內容中已使用會出現問題的 shortcode 或區塊
  • 能夠編輯佈景主題的 functions.php 檔案

教學內容

Shortcode 無法正常運作的原因

Slim SEO 在自動產生 meta description 時會先解析文章中的 shortcode

若 shortcode 涉及 session 或特殊邏輯,可能因此無法如預期運作,甚至造成頁面空白

設定略過特定 Shortcode

  1. 在佈景主題的 functions.php 檔案中加入使用 slim_seo_skipped_shortcodes filter 的程式碼片段
  2. 在程式碼中填入該 shortcode 的名稱(僅名稱本身,不含屬性),例如將 my_shortcode 加入陣列
  3. 若要略過多個 shortcode,可在同一個 filter 內加入多筆 $shortcodes[] = ...
  4. 也可改用相反方向的 slim_seo_allowed_shortcodes filter 來篩選允許的 shortcode 清單,此 filter 接受的是以 shortcode 名稱為鍵、callback 為值的關聯陣列
  5. 若要完全停用所有 shortcode 解析,可使用 add_filter( 'slim_seo_allowed_shortcodes', '__return_empty_array' )

設定略過特定區塊 (Blocks)

與 shortcode 類似,部分區塊可能也無法正常運作

  1. 使用 slim_seo_skipped_blocks filter,在陣列中加入要略過的區塊名稱,例如 namespace/your-block-name
  2. 若要略過第二個區塊,可再加入一行 $blocks[] = 'namespace/your-2nd-block-name'
  3. 也可改用 slim_seo_allowed_blocks filter 篩選允許的區塊清單,此 filter 接受的是數字索引陣列,每個元素為一個區塊名稱
  4. 若只想允許核心區塊,可篩選出名稱以 core/ 開頭的區塊

介面名稱對照

  • slim_seo_skipped_shortcodes:用於指定要略過解析的 shortcode 名稱清單的 filter
  • slim_seo_allowed_shortcodes:用於篩選允許被解析的 shortcode 清單的 filter,屬相反方向的過濾方式
  • slim_seo_skipped_blocks:用於指定要略過解析的區塊名稱清單的 filter
  • slim_seo_allowed_blocks:用於篩選允許被解析的區塊清單的 filter,接受數字索引陣列

注意事項

注意

加入 slim_seo_skipped_shortcodes 時,只需填寫 shortcode 的名稱,不要填入含屬性的完整 shortcode 文字

注意

slim_seo_allowed_shortcodesslim_seo_allowed_blocks 兩者接受的陣列格式不同:前者為關聯陣列(鍵為名稱),後者為數字索引陣列

官方來源

還是卡住了?

先把問題問清楚,通常比直接開工單更快。複製下面的結構,補上你的情況後送出。

用 AI 先釐清問題

/ai 我正在閱讀「Slim SEO 疑難排解:Shortcode 與區塊無法正常運作的解決方法」,目前卡在:

我已嘗試:

我看到的畫面/錯誤訊息:

請用一步一步的方式告訴我下一步。

需要我們實際進入網站調整設定、修改佈景主題或處理資料時,再建立 /task 工單。