用於無頭 WordPress 的外掛程式(REST API)
與 REST API 一起使用的 7 個 WordPress 插件將資料從無頭 WordPress。
使用 REST API 和 Headless WordPress 的 JSON 模式的螢幕截圖。
作為 WordPress 的長期用戶,我很高興看到使用 SvelteKit 的無頭 CMS 的開發正在取得進展。我使用了 HyGraph(以前稱為 GraphCMS),它為使用無頭 CMS 學習 GraphQL 奠定了良好的基礎。使用 Hygraph 一年後,我意識到我可以使用 WordPress 輕鬆創建相同的模型和元件。
Hygraph 是一款出色的無頭 CMS,特別是如果您是 Jamstack 的新手。他們提供創建文件、慷慨的免費套餐,甚至在免費套餐上提供出色的支援。然而,如果您有 WordPress 或 Ghost 的背景,為什麼不直接使用這些平台作為您的無頭 CMS?兩者都提供開箱即用的 REST API 支援。WordPress 隨附多個插件,也提供 GraphQL 支援。
在這篇文章中,我將推薦您使用 Headless WordPress 透過 REST API 取得資料時使用的外掛程式(我將在以後添加有關 GraphQL 外掛程式的文章)。正如我上面提到的,我正在使用 SvelteKit 建立我的網站。雖然我曾經在我維護的 LEMP 伺服器上管理自己的 WordPress 實例,但我讓我的生活變得輕鬆。我使用 Namecheap 來託管所有無頭 WordPress 安裝。我正在從事的專案是使用 Vercel 進行部署的。
我假設您已經知道如何使用 SvelteKit 內部的 REST API 來取得資料。我將在以後的文章中發表一篇文章來解釋我是如何做到這一點的。
推薦插件
如果您只是使用 REST API 從無頭 WordPress 實例獲取數據,那麼我推薦以下 7 個外掛程式:
-
經典編輯器– 根據您託管網站的位置,古騰堡預設編輯器「可能」在更新貼文/頁面時建立 JSON 錯誤。如果您的伺服器運行 Lightspeed,這似乎是正確的。解決此問題的方法是安裝經典編輯器外掛程式。正如我之前提到的,我在 Namecheap 託管無頭 WordPress 實例,因此這是唯一有效的解決方案。在我的 LEMP 伺服器上,古騰堡編輯器沒有任何問題。
-
Atlas Content Modeler – ACM 是一個內容建模插件,可讓您建立自己的自訂貼文類型。與其將事件加入頁面,為什麼不直接建立事件內容模型呢?您可以使用 ACM 來完成此操作。我真的很喜歡將這個插件與 REST API 一起使用。它也適用於 GraphQL。
-
Cloudinary – 在安裝下一個外掛程式之前設定您的 Cloudinary 帳戶。過去,我常常將圖像轉換為 webp 格式。這是非常耗時的,如果您的客戶必須自己編輯所有照片,他們實際上會停止使用無頭 WordPress 解決方案。由於免費套餐有限制,因此請務必僅選擇要上傳的圖像。您可以將主題和外掛程式單獨備份到 Dropbox 或 Google Drive。
-
WebP Express – 迄今為止我最喜歡的 WordPress 外掛之一。它會將您的圖像轉換為 webp。Webp 是 Google Lighthouse 推薦的良好網站審核格式。使用 WordPress 上傳映像,WebP Express 會自動將其轉換為 webp 格式。對話結束後,圖像將上傳到 Cloudinary。從那裡,您可以使用 REST API 從 JSON 架構中選擇所需的大小。
-
Cloudflare – 使用 Cloudflare 作為我的 DNS 和 CDN。最好使用該外掛程式來優化和保護您的無頭 WordPress 實例。此外,我更喜歡使用 Cloudflare 提供的原始 SSL 憑證,而不是 Namecheap SSL 憑證。
-
Vercel 部署 Hooks – 我的靜態網站託管在 Vercel 上。擁有這個插件意味著我的客戶不必要求我更新他的網站。他只需要編輯內容或新帖子,然後點擊 WordPress 內的「部署網站」連結。
-
維護– 它只是一個添加維護登陸頁面的維護插件。這對於偶然訪問您的無頭 WordPress URL 的訪客來說是件好事。只需添加一個重定向連結即可。我正在使用免費版本。
使用 REST API,我在開發網站時有點作弊。我只是獲取要添加到頁面的內容模型的 ID。當您需要快速建立網站時,這是獲取資料的好方法。
正如我之前提到的,一旦我弄清楚 SvelteKit 在 9 月實現的新路由,我計劃更多地使用 GraphQL。
WP REST API 的 JWT 驗證
使用 JSON Web 令牌驗證作為驗證方法來擴充 WP REST API。
不幸的是,如果您使用共享主機,則很難對其進行配置。
編輯 2:我將 WordPress 實例移至Linode。我希望能夠靈活地編輯自己的配置,而無需尋求支援人員的協助。我現在正在運行 LEMP,並決定將當前的 REST API 專案遷移到 GraphQL 以加快速度。完成後我會發一個帖子。
SvelteKit是首選的無頭 WordPress 框架。