新聞中心
wordpress REST API正在改變WordPress。您可能沒有注意到,因?yàn)槠渲泻芏喽荚谀缓?,但是REST API的含義對(duì)WordPress的未來產(chǎn)生了巨大的影響,無論是在代碼庫還是使用方面。

如果您沒有使用過WordPress REST API,您可能想知道它是什么。因此,讓我們先看看REST API是什么。
在本文中,我們講解WordPress REST API的一些基礎(chǔ)知識(shí)。我們將研究它的作用、工作原理以及它給平臺(tái)帶來的變化。最后,我們將討論您可以用它做的一些事情。
當(dāng)REST API最終被添加到WordPress的核心時(shí),漫長的旅程就結(jié)束了。許多人預(yù)計(jì)這一變化是該平臺(tái)歷史上WordPress向前邁出的最大一步。但是,如果您不熟悉REST API,您可能會(huì)對(duì)它所獲得的所有關(guān)注感到困惑。
簡而言之,WordPress REST API的加入使WordPress變成了一個(gè)功能齊全的應(yīng)用程序框架。這顯著提高了它的“可擴(kuò)展性”,或者說它可以通過新特性和功能進(jìn)行擴(kuò)展。此外,它還擴(kuò)展了平臺(tái)與其他站點(diǎn)和應(yīng)用程序進(jìn)行通信的潛力。
什么是WordPress REST API?
在我們深入研究WordPress REST API之前,了解我們的術(shù)語很重要。這是一個(gè)我們需要使用大量首字母縮略詞的主題,所以讓我們先把它們弄清楚。
什么是應(yīng)用程序編程接口 (API)?
首先,您需要知道什么是應(yīng)用程序編程接口 (API)。用最簡單的術(shù)語來說,API是一個(gè)系統(tǒng)使其他系統(tǒng)能夠連接到其數(shù)據(jù)的一種方式。例如,當(dāng)網(wǎng)站向頁面添加Facebook的“Like”按鈕時(shí),它會(huì)通過連接到Facebook的API來實(shí)現(xiàn)這一點(diǎn)。這讓網(wǎng)頁可以使用API來接收數(shù)據(jù)(點(diǎn)贊按鈕的代碼)和發(fā)送數(shù)據(jù)(點(diǎn)贊請(qǐng)求)。
應(yīng)用程序編程接口或API被定義為:
“客戶端和服務(wù)器之間的接口或通信協(xié)議,旨在簡化客戶端軟件的構(gòu)建?!?/p>
如果您不熟悉API,那可能沒有多大幫助。更簡單地說,API是一組允許一個(gè)系統(tǒng)與另一個(gè)系統(tǒng)交互(或“接口”)的代碼。如果您曾經(jīng)將Google地圖添加到您的WordPress站點(diǎn),那么您就使用了Google的Maps API,它允許您的WordPress站點(diǎn)與Google Maps交互。
這些系統(tǒng)不需要完全分開。WordPress已經(jīng)有多個(gè)API,用于插件、設(shè)置和短代碼等。插件和主題開發(fā)人員可以使用這些來與WordPress核心進(jìn)行交互并使事情發(fā)生(例如創(chuàng)建短代碼和向WordPress管理員添加設(shè)置屏幕)。
與REST API的不同之處在于它允許WordPress安裝本身之外的系統(tǒng)與WordPress交互,這就是REST部分的用武之地。
什么是具象狀態(tài)轉(zhuǎn)移 (REST)?
那么,REST API究竟是什么?具象狀態(tài)傳輸 (REST)是一種特定于Web服務(wù)的 API。它包含一組標(biāo)準(zhǔn)化的指令和規(guī)則,使所有“RESTful”服務(wù)更容易相互連接。
簡而言之,REST API使您能夠向外部系統(tǒng)發(fā)出請(qǐng)求。這方面的一個(gè)例子是Twitter。您可以使用其API向特定用戶請(qǐng)求一定數(shù)量的推文。然后API將根據(jù)您的請(qǐng)求返回推文,您可以使用HTML和CSS將其嵌入您的網(wǎng)站。
這些請(qǐng)求是使用JavaScript Object Notation (JSON) 執(zhí)行的。這是一種專為發(fā)送、接收和存儲(chǔ)數(shù)據(jù)而設(shè)計(jì)的語言。我們將在本文后面介紹JSON,但我們建議您先花點(diǎn)時(shí)間熟悉一下這種語言。這將幫助您準(zhǔn)備好使用WordPress REST API,并理解我們將要討論的一些概念。
WordPress REST API是一個(gè)接口,開發(fā)人員可以使用它從WordPress安裝本身之外訪問WordPress。您可以使用JavaScript訪問它,這意味著它可用于創(chuàng)建交互式網(wǎng)站和應(yīng)用程序。
REST代表 Representational State Transfer,API 代表應(yīng)用程序編程接口。讓我們來看看每一個(gè)的含義。
Representational State Transfer (REST) 提供了 Web 系統(tǒng)可以用來相互交互的標(biāo)準(zhǔn)。如果沒有 REST,兩個(gè)系統(tǒng)將無法相互理解,從而來回發(fā)送數(shù)據(jù)。
要使應(yīng)用程序成為RESTful,它必須符合五個(gè)原則:
所有這些約束都與網(wǎng)頁和應(yīng)用程序相關(guān),并控制應(yīng)用程序與API交互的方式。
這對(duì)WordPress意味著什么?
將REST和API放在一起意味著WordPress REST API是一組代碼,旨在使其他系統(tǒng)能夠與WordPress交互,并且它的構(gòu)建方式可確保這些系統(tǒng)能夠相互理解。
這意味著第三方網(wǎng)站或移動(dòng)應(yīng)用程序,例如,可以訪問您的WordPress數(shù)據(jù)庫,從中獲取數(shù)據(jù)并向其中添加數(shù)據(jù)。
不過,這有許多含義和用途。
了解WordPress REST API
WordPress REST API的功能與我們已經(jīng)提到的例子大體相同?;旧?,WordPress REST API使您可以從任何與JSON兼容的框架中訪問WordPress的所有功能。
與Twitter的API使您能夠檢索和發(fā)送推文的方式類似,WordPress REST API可用于管理來自外部平臺(tái)的文章、用戶、類別等。這使您能夠以多種前所未有的方式使用WordPress。
WordPress REST API的背景
REST API早在2013年就宣布了,它以插件的形式開始,旨在通過4.1版將其合并到WordPress核心中。正如經(jīng)常發(fā)生的那樣,延遲會(huì)推遲發(fā)布,直到三年后隨著WordPress 4.7的發(fā)布,它最終被實(shí)現(xiàn)到核心中。
WordPress REST API于2016年12月作為4.7版核心的一部分發(fā)布,但在此之前它作為插件存在。
對(duì)于許多人來說,這是一個(gè)漫長但值得的等待,他們將WordPress REST API視為平臺(tái)向前邁出的重要一步。您可能想知道為什么這個(gè)添加如此重要,特別是因?yàn)楹芏嘤脩艨赡軟]有注意到太大的區(qū)別。事實(shí)證明,出于多種原因,包含REST API是對(duì)WordPress的根本性更改。
例如,通過實(shí)施REST API,WordPress從簡單的創(chuàng)建網(wǎng)站的平臺(tái)邁出了一步。相反,它現(xiàn)在已經(jīng)成為一個(gè)成熟的應(yīng)用程序框架。這意味著開發(fā)人員可以使用WordPress站點(diǎn)為移動(dòng)設(shè)備和網(wǎng)絡(luò)創(chuàng)建應(yīng)用程序,或作為信息存儲(chǔ)庫。
這種轉(zhuǎn)變也使WordPress擺脫了對(duì)PHP的依賴。通過使WordPress與任何JSON-compatible語言兼容,REST API極大地?cái)U(kuò)展了開發(fā)人員的可能性,使他們能夠?qū)ordPress功能與幾乎任何框架一起使用。
它旨在支持一系列基于WordPress構(gòu)建的應(yīng)用程序,并將WordPress從內(nèi)容管理系統(tǒng)轉(zhuǎn)變?yōu)閼?yīng)用程序平臺(tái)。
它被WordPress.com廣泛使用,其基于JavaScript的界面使用REST API與WordPress數(shù)據(jù)庫進(jìn)行交互。古騰堡編輯界面也使用它,該界面在2019年成為核心的一部分。
REST API擴(kuò)大了WordPress可用于的應(yīng)用程序范圍。雖然內(nèi)容管理系統(tǒng)擅長運(yùn)行復(fù)雜的網(wǎng)站,但應(yīng)用程序平臺(tái)也可用于支持基于Web的單頁應(yīng)用程序或SPA(如果您曾經(jīng)使用過Google文檔,那么您已經(jīng)使用過其中之一)。
在這些中,當(dāng)用戶執(zhí)行操作時(shí)會(huì)刷新內(nèi)容,而不是加載新頁面。因?yàn)樗褂肑avaScript(一種客戶端語言)而不是PHP(一種服務(wù)器端語言),所以它可以在用戶的??瀏覽器中進(jìn)行操作,而無需不斷地向服務(wù)器發(fā)送請(qǐng)求。
對(duì)WordPress用戶和開發(fā)人員的影響
如果您是使用WordPress的用戶和/或開發(fā)人員,那么REST API有很多含義。
對(duì)于用戶,這些包括:
- 對(duì)界面的更改,包括古騰堡編輯器。
- 對(duì)WordPress移動(dòng)應(yīng)用程序的更改和改進(jìn)。
- 隨著時(shí)間的推移,自托管的WordPress管理屏幕看起來更像WordPress.com屏幕。
對(duì)于開發(fā)者來說,還有更廣泛的意義和可能性:
- 能夠使用REST API創(chuàng)建SPA,從WordPress中提取數(shù)據(jù),但看起來與WordPress非常不同。
- 將WordPress與其他前端技術(shù)和系統(tǒng)集成的能力。
- 如果您是不編寫PHP的前端開發(fā)人員,則可以使用WordPress進(jìn)行開發(fā)。
- 對(duì)于PHP開發(fā)人員來說,越來越需要擴(kuò)展您的技能以包含JavaScript。
- 特定更改,例如需要在頁面和后期編輯屏幕中構(gòu)建古騰堡區(qū)塊而不是元框。
隨著時(shí)間的推移,WordPress REST API將意味著更多的WordPress核心將用JavaScript而不是PHP編寫。如果您是WordPress開發(fā)人員,這意味著您需要學(xué)習(xí)JavaScript。
REST API和JSON如何協(xié)同工作
最后,REST API在可用于平臺(tái)的接口方面提供了更高的靈活性。它使管理界面完全可選,因?yàn)槟F(xiàn)在可以完全通過JSON命令與您的WordPress站點(diǎn)進(jìn)行交互。讓我們看看JSON和REST API如何結(jié)合起來使這成為可能。
WordPress REST API是為了響應(yīng)網(wǎng)站和應(yīng)用程序開發(fā)方式的變化以及更廣泛地開放WordPress的需要而開發(fā)的。
到目前為止,您應(yīng)該對(duì)WordPress REST API的理論方面有所了解,所以讓我們看看該技術(shù)更實(shí)用的方面。官方手冊(cè)介紹如何使用REST API,如下所示:
“WordPress REST API為WordPress數(shù)據(jù)類型提供API端點(diǎn),允許開發(fā)人員通過發(fā)送和接收J(rèn)SON(JavaScript Object Notation)對(duì)象與站點(diǎn)進(jìn)行遠(yuǎn)程交互?!?/p>
我們需要關(guān)注的第一個(gè)詞是“端點(diǎn)”。將端點(diǎn)視為可以使用JSON請(qǐng)求調(diào)用的一段數(shù)據(jù)或函數(shù)的最簡單方法。默認(rèn)情況下,WordPress提供了大量可供使用的標(biāo)準(zhǔn)端點(diǎn),但開發(fā)人員也可以創(chuàng)建自定義端點(diǎn)。
要到達(dá)端點(diǎn),您必須使用采用普通URL形式的“路由”。您現(xiàn)在甚至可以自己嘗試一下。轉(zhuǎn)到您自己的WordPress站點(diǎn),并將/wp-json/wp/v2 添加到其URL的末尾。如果您的站點(diǎn)是http://example.com,您將輸入http://example.com/wp-json/wp/v2。
當(dāng)您加載此路由時(shí),您將到達(dá)端點(diǎn),在這種情況下,它以(凌亂的)JSON格式返回站點(diǎn)的所有內(nèi)容和元數(shù)據(jù)。通過使用不同的路由,您可以訪問不同的端點(diǎn),以獲取特定類型的信息并執(zhí)行各種任務(wù)。
您將在REST API中使用三個(gè)主要的JSON請(qǐng)求,所以現(xiàn)在讓我們快速瀏覽一下它們。他們是:
- GET-此類請(qǐng)求用于從API檢索和列出數(shù)據(jù)。例如,您將使用GET請(qǐng)求返回您網(wǎng)站上的用戶列表或編譯特定時(shí)間范圍內(nèi)的博客文章。
- POST-此請(qǐng)求用于向API發(fā)送數(shù)據(jù)。它使您能夠?qū)⑿滦畔⑼扑偷絎ordPress,例如添加新用戶和帖子或更新現(xiàn)有數(shù)據(jù)。
- DELET-顧名思義,這個(gè)請(qǐng)求是用來刪除數(shù)據(jù)的。這使您能夠刪除文章、頁面、用戶等。
有時(shí)可以將GET和POST與相同的端點(diǎn)一起使用以獲得不同的結(jié)果。例如,讓我們看看端點(diǎn)/me/settings/。如果您要在此端點(diǎn)上執(zhí)行GET請(qǐng)求,您將收到當(dāng)前用戶設(shè)置的列表。但是,通過在同一端點(diǎn)上使用POST請(qǐng)求,您將能夠改為更新設(shè)置。
如何訪問WordPress REST API
您如何訪問WordPress REST API?
要訪問WP-REST API,您需要通過命令行訪問您的站點(diǎn)。對(duì)于WordPress,這稱為WP-CLI。您不會(huì)通過管理屏幕或直接訪問您網(wǎng)站上的代碼來執(zhí)行任何這些操作。
讓我們來看看你是如何開始的。
通過WP-CLI 訪問WP-REST
WP-CLI是WordPress命令行界面。它允許您通過計(jì)算機(jī)上的命令行界面 (CLI) 訪問和使用WordPress。
要訪問CLI,請(qǐng)?jiān)贛ac或Linux中打開終端,或在Windows中打開命令提示符。
Mac上的終端
要訪問遠(yuǎn)程站點(diǎn),您需要SSH到您的服務(wù)器以通過WP-CLI訪問它(無法通過SSH連接?了解如何修復(fù)SSH“連接被拒絕”錯(cuò)誤)。
要訪問本地站點(diǎn),您只需從命令行使用正確的目錄結(jié)構(gòu)。在實(shí)際站點(diǎn)上試用REST API之前,最好先在本地測試站點(diǎn)上試用REST API。
您需要專門訪問您網(wǎng)站的REST API,如下所示:
http://yoursite.com/wp-json/wp/v2
然后,您可以在此之后添加元素以訪問某些類型的數(shù)據(jù),我們稍后將更詳細(xì)地介紹這些數(shù)據(jù)。這些元素稱為端點(diǎn)。
驗(yàn)證
訪問站點(diǎn)后,您可能需要進(jìn)行身份驗(yàn)證。一些端點(diǎn)是公共的,不需要身份驗(yàn)證,而其他端點(diǎn)則需要。
您不是在此處登錄站點(diǎn)管理員:REST API的處理方式略有不同。
為了能夠通過WP-CLI對(duì)您的站點(diǎn)進(jìn)行身份驗(yàn)證,您需要安裝一個(gè)身份驗(yàn)證插件。對(duì)于開發(fā)安裝,Basic Auth插件可以完成這項(xiàng)工作并且很容易使用。
但是,對(duì)于實(shí)時(shí)站點(diǎn),您應(yīng)該使用更強(qiáng)大的身份驗(yàn)證形式,例如JWT身份驗(yàn)證插件,它使用JSON Web Token并且更安全。
然后,您可以使用命令行訪問數(shù)據(jù)并包括身份驗(yàn)證。
下面的示例curl用于測試與WordPress的連接。它將輸出一個(gè)草稿列表。
curl -X GET --user username:password -i http://yoursite.com/wp-json/wp/v2/posts?status=draft
草稿帖子不是公開信息,因此您需要進(jìn)行身份驗(yàn)證才能訪問它們。但是,如果您要查找公開數(shù)據(jù),則不需要身份驗(yàn)證。因此,要檢索已發(fā)布的文章列表,您可以使用:
curl -X GET http://yoursite.com/wp-json/wp/v2/posts
這將獲取所有已發(fā)布的文章,因?yàn)檫@些帖子是公開的。
WordPress REST API命令概述
我們現(xiàn)在將把所有這些理論付諸實(shí)踐,并向您展示一些非?;镜氖纠?,說明您可以使用REST API做什么。這只是一種嘗試,以幫助您習(xí)慣使用REST API來處理對(duì)WordPress的請(qǐng)求。有關(guān)更多示例,我們建議您查看官方參考庫和REST API資源。
以下技術(shù)將要求您使用命令行來處理JSON請(qǐng)求。這使您能夠通過使用基于文本的界面和發(fā)送簡單的命令與您的 WordPress 站點(diǎn)進(jìn)行交互。如果您沒有任何使用命令行的經(jīng)驗(yàn),我們建議您先花一些時(shí)間學(xué)習(xí)基礎(chǔ)知識(shí)。您可能還想使用SSH來創(chuàng)建與您的站點(diǎn)的連接。
最后,當(dāng)您準(zhǔn)備好時(shí),讓我們看一些有關(guān)如何使用WordPress REST API的示例!
一旦您訪問了您的站點(diǎn)并且您知道如何使用身份驗(yàn)證(以及您是否需要),您將需要使用一系列命令中的一個(gè)來與您的站點(diǎn)進(jìn)行交互。
您需要使用的命令是:
GET檢索資源,例如文章或其他一些數(shù)據(jù)。POST向服務(wù)器添加資源,例如文章、附件或其他資源。PUT可用于編輯或更新服務(wù)器上已有的資源。DELETE從服務(wù)器中刪除資源。小心使用!
讓我們依次來看看其中的每一個(gè)。
Get
GET命令可能是最常用的:它檢索數(shù)據(jù)。下面的示例(您在成功訪問您的網(wǎng)站后使用)將獲取您網(wǎng)站中所有已發(fā)布頁面的列表:
GET http://yoursite.com/wp-json/wp/v2/posts/?status=published
請(qǐng)注意,我沒有在上面的行中包含您站點(diǎn)的完整路徑,因?yàn)槟呀?jīng)使用WP-CLI訪問了該路徑。
檢索到該數(shù)據(jù)后,您可以使用它來通知您的下一步。您可以刪除其中一個(gè)文章,對(duì)其進(jìn)行編輯或更新。您可以簡單地將帖子輸出到您的網(wǎng)絡(luò)應(yīng)用程序。
假設(shè)您想獲取最新的文章。你會(huì)用這個(gè):
GET http://yoursite.com/wp-json/wp/v2/posts/?per_page=1
在處理文章時(shí),您可以使用許多參數(shù)。有關(guān)更多信息,請(qǐng)參閱WordPress REST API 手冊(cè)。
Post
POST用于向您的站點(diǎn)添加新數(shù)據(jù)或資源。
因此,例如,如果您想創(chuàng)建一個(gè)文章,您可以使用以下POST命令開始:
POST http://yoursite.com/wp-json/wp/v2/posts/
這將創(chuàng)建一個(gè)新的空草稿文章。
然后,您可以通過使用PUT命令進(jìn)行編輯來更新文章。
使用POST命令,您還可以添加文章以外的其他資源,包括附件和其他文章類型。
要將頁面添加到您的站點(diǎn),您可以使用以下方法:
POST http://yoursite.com/wp-json/wp/v2/posts/pages
這會(huì)以與創(chuàng)建空文章相同的方式創(chuàng)建一個(gè)空頁面。
Put
PUT命令允許您編輯現(xiàn)有資源,包括文章。
假設(shè)您的網(wǎng)站上有許多草稿文章。您想檢查它們并更新其中一個(gè)以使其發(fā)布。
您可以首先獲取所有草稿文章的列表:
POST http://yoursite.com/wp-json/wp/v2/posts/?status="draft"
系統(tǒng)將為您提供所有當(dāng)前草稿文章的列表。您可以使用其ID更改其中之一的狀態(tài):
PUT http://yoursite.com/wp-json/wp/v2/posts/567
這將訪問該文章并允許您對(duì)其進(jìn)行編輯。然后,您可以使用status參數(shù)更改其狀態(tài):
{
"status" = "publish"
}
或者您可以向文章添加內(nèi)容并發(fā)布它:
{
"status" = "publish"
"content" = "content here"
}
服務(wù)器將返回一個(gè)200 - OK狀態(tài),告訴您PUT請(qǐng)求已成功編輯文章。
DELETE
DELETE命令執(zhí)行您所期望的操作:它刪除一個(gè)資源。默認(rèn)情況下,如果您使用它來刪除文章,它會(huì)將其放入垃圾箱,而不是永久刪除。
因此,如果您想將剛剛創(chuàng)建的文章移至垃圾箱,您可以使用以下命令:
DELETE http://yoursite.com/wp-json/wp/v2/posts/567
但是,如果您想繞過垃圾箱并永久刪除它,您可以使用以下force參數(shù):
DELETE http://yoursite.com/wp-json/wp/v2/posts/567?force=true
這將永久刪除文章,無法撤消,因此應(yīng)謹(jǐn)慎使用。
一些例子
1. 從站點(diǎn)返回文章
雖然您顯然需要適當(dāng)?shù)氖跈?quán)來編輯站點(diǎn),但幾乎可以從任何 WordPress 站點(diǎn)檢索一些信息。這是因?yàn)镽EST API在所有WordPress安裝中都是一致的。
正如我們所討論的,API存在的一個(gè)主要原因是使外部應(yīng)用程序能夠訪問您的某些數(shù)據(jù)。在此示例中,我們可以從官方WordPress新聞博客中檢索單個(gè)文章:
curl https://wordpress.org/news/wp-json/wp/v2/posts/1
ID已設(shè)置為1,這意味著此請(qǐng)求將檢索博客上的第一篇文章??赡芎茈y看到,因?yàn)镴SON不是很可讀,但是在代碼中,您可以找到文章的所有內(nèi)容和元數(shù)據(jù)。
然后,您可以在應(yīng)用程序中使用此信息,例如,使用您自己的自定義樣式來顯示它。
如果您想返回博客中的每篇文章,您所要做的就是刪除末尾的ID。但是,您更有可能希望返回選定數(shù)量的帖子。以下請(qǐng)求將返回最新的三個(gè)文章:
curl https://wordpress.org/news/wp-json/wp/v2/posts/?per_page=3
您可以在其他網(wǎng)站甚至您自己的博客上親自嘗試。
2. 更新文章
現(xiàn)在,讓我們嘗試使用REST API對(duì)WordPress進(jìn)行一些更改。為此,您需要登錄到要管理的站點(diǎn)。例如,如果您使用SSH,則需要登錄到您的服務(wù)器。
在這個(gè)例子中,我們將更新一個(gè)現(xiàn)有的文章。首先,讓我們使用一個(gè)請(qǐng)求來更新ID為1的文章的標(biāo)題:
curl -X POST http://example.com/wp-json/wp/v2/posts/1 -d '{"title":"A Brand New Title"}'
這是不言自明的。title參數(shù)表明您正在更新文章的標(biāo)題,后跟包含替換內(nèi)容的文本字符串。
還有很多其他的參數(shù),你可以用它來進(jìn)行更改后。例如,您可以使用列表為文章分配類別、發(fā)布文章或完全更改其內(nèi)容。
3. 刪除用戶
最后,讓我們看看如何使用REST API刪除數(shù)據(jù)。在此示例中,我們將從站點(diǎn)中刪除用戶。當(dāng)然,您需要先登錄并授權(quán)管理用戶,然后才能使用此功能。
然后,您可以使用以下請(qǐng)求刪除ID為101的用戶:
curl -X DELETE http://example.com/wp-json/wp/v2/users/101
這將從站點(diǎn)中刪除指定的用戶。您可以使用附加參數(shù)根據(jù)用戶的ID將用戶的文章重新分配給另一個(gè)用戶,或者強(qiáng)制永久刪除而不是將用戶添加到垃圾箱。
通過這些示例,您可以開始了解REST API如何使您能夠管理站點(diǎn)上的內(nèi)容并連接到其他站點(diǎn)。如果您想了解更多信息,我們建議您深入研究REST API手冊(cè),并查看有關(guān)學(xué)習(xí)JSON的課程。
何時(shí)不使用WordPress REST API
WordPress REST API并不總是開發(fā)網(wǎng)站或應(yīng)用程序的正確方法。在使用它進(jìn)行開發(fā)之前,您應(yīng)該注意以下一些注意事項(xiàng):
兼容性
如果您的應(yīng)用程序?qū)⒃诓贿\(yùn)行JavaScript的設(shè)備上或由可能關(guān)閉它的用戶使用,那么如果您使用的是REST API,它就不會(huì)運(yùn)行。
用PHP編碼的WordPress站點(diǎn)將輸出HTML,因此不會(huì)遇到此問題。不使用JavaScript的設(shè)備越來越少,但如果您專門為這些設(shè)備開發(fā),REST API將無法工作。
同樣,如果您的用戶可能會(huì)關(guān)閉JavaScript,那么使用REST API會(huì)導(dǎo)致問題。出于可訪問性或安全原因,某些用戶會(huì)在其瀏覽器中關(guān)閉JavaScript。
無障礙
使用JavaScript開發(fā)的站點(diǎn)或應(yīng)用程序并不總是像HTML輸出那樣易于訪問。
這主要是因?yàn)镴avaScript用于傳遞動(dòng)態(tài)內(nèi)容的方式可能無法與屏幕閱讀器很好地配合使用,并且可能會(huì)給視力障礙或光敏性癲癇患者帶來問題。
使用REST API訪問您的WordPress站點(diǎn)并以可訪問的形式輸出數(shù)據(jù)意味著您可以克服這些問題,但在開發(fā)站點(diǎn)時(shí)檢查站點(diǎn)的可訪問性是值得的。
搜索引擎優(yōu)化
頻繁刷新的單頁應(yīng)用程序有時(shí)會(huì)導(dǎo)致SEO問題。這是因?yàn)榈谝淮屋敵鲰撁鏁r(shí)未交付的內(nèi)容可能不會(huì)被搜索引擎索引。
谷歌和其他搜索引擎正在迎頭趕上這樣一個(gè)事實(shí),即現(xiàn)在許多網(wǎng)站都由SPA驅(qū)動(dòng),并且正在適當(dāng)?shù)貙⑺鼈兙幦胨饕?。但是,?duì)您使用REST API開發(fā)的任何站點(diǎn)進(jìn)行徹底的SEO審核確實(shí)值得。
如何禁用WordPress REST API
如果您不希望應(yīng)用程序能夠使用REST API從您的站點(diǎn)訪問數(shù)據(jù),您可以禁用它。請(qǐng)記住,任何人都可以訪問公共數(shù)據(jù),而不僅僅是您。
為此,您可以安裝Disable WP REST API插件。這將為未登錄到您的站點(diǎn)的任何人禁用REST API。
禁用WP REST API插件
或者,您可以向主題的函數(shù)文件中添加一些代碼或編寫自己的插件。最好編寫一個(gè)插件,因?yàn)檫@不是特定于主題的功能。
在您的插件中,只添加兩行:
add_filter( 'json_enabled', '__return_false' ); add_filter( 'json_jsonp_enabled', '__return_false' );
這將完全禁用您站點(diǎn)的REST API。它可能會(huì)對(duì)您的管理屏幕產(chǎn)生連鎖反應(yīng),因此請(qǐng)確保添加后一切正常。
使用WordPress REST API的實(shí)際應(yīng)用程序
REST API為WordPress的未來提供了一些令人興奮的可能性。以下是使用WordPress REST API創(chuàng)建SPA或?qū)ordPress鏈接到其他站點(diǎn)和技術(shù)的應(yīng)用程序和站點(diǎn)的一些示例。
WordPress.com
WordPress.com界面
WordPress.com管理屏幕完全使用REST API構(gòu)建,以提供用戶與之交互以管理其站點(diǎn)的SPA。
這使得界面和服務(wù)器之間的動(dòng)態(tài)通信成為可能,并導(dǎo)致WordPress.org可能及時(shí)模仿的用戶友好界面。
區(qū)塊編輯器(古騰堡)
古騰堡編輯器
同樣在WordPress管理屏幕中,但這次也在自托管WordPress中,Gutenberg區(qū)塊編輯器使用REST API與您的數(shù)據(jù)庫進(jìn)行通信并創(chuàng)建塊。
要使文章類型與Gutenberg編輯器一起使用,它們必須啟用REST API。這意味著,如果您要注冊(cè)自定義文章類型并使用Gutenberg,則需要添加以下行以啟用該文章類型的區(qū)塊編輯器:
"show_in_rest" = true;
Event Espresso
Event Espresso
Event Espresso是一個(gè)WordPress插件,可讓用戶組織和宣傳活動(dòng)。它利用REST API,以便用戶可以從WordPress外部訪問其中的數(shù)據(jù)。這意味著您可以構(gòu)建移動(dòng)應(yīng)用程序或SPA來管理您的活動(dòng)。
UsTwo
UsTwo
UsTwo是一家數(shù)字機(jī)構(gòu),其網(wǎng)站是使用REST API作為單頁應(yīng)用程序構(gòu)建的。這結(jié)合了使用React構(gòu)建的前端和由WordPress提供支持的后端。
他們的單個(gè)頁面的內(nèi)容是模塊化的,其結(jié)構(gòu)與標(biāo)準(zhǔn)的WordPress頁面不同。為了完成這項(xiàng)工作,他們使用了一個(gè)自定義頁面構(gòu)建器插件,讓他們的團(tuán)隊(duì)可以向站點(diǎn)添加模塊化內(nèi)容。
USA Today
USA Today
USA Today的網(wǎng)站是使用WordPress REST API與網(wǎng)站中現(xiàn)有系統(tǒng)和模塊的集成重建的。
REST API允許使用JSON將站點(diǎn)內(nèi)容推送到其他渠道,例如Facebook Instant Articles和Apple News。他們還為他們的體育部分編寫了一個(gè)使用JavaScript構(gòu)建的在線社交游戲。
小結(jié)
WordPress REST API為平臺(tái),是一個(gè)巨大的進(jìn)步,遠(yuǎn)離其根源和未來。開發(fā)人員從一開始就很興奮,但如果您一開始不熟悉REST API,您可能會(huì)對(duì)其中的原理感到困惑。
WordPress REST API為WordPress用戶和開發(fā)人員帶來了一些令人興奮的挑戰(zhàn),但也帶來了有趣的機(jī)會(huì)。這是WordPress的未來,很可能會(huì)徹底改變我們使用WordPress進(jìn)行開發(fā)的方式以及我們使用它的方式。
網(wǎng)頁名稱:WordPressRESTAPI入門基礎(chǔ)知識(shí)點(diǎn)
本文URL:http://m.fisionsoft.com.cn/article/coieocg.html


咨詢
建站咨詢
