WordPress REST API基礎的完整指南 - WP建站
文章推薦指數: 80 %
它旨在支持一系列基於WordPress的應用程序,並將WordPress從內容管理系統轉換為應用程序平台。
WordPress.com已廣泛使用該工具,其基於JavaScript的介面 ...
WordPressRESTAPI基礎的完整指南
WPJIAN
•
2020年5月27日pm10:47
•
使用技巧
WordPressRESTAPI正在更改WordPress。
您可能沒有注意到,儘管其中很多都是隱藏的,但是RESTAPI的含義在WordPress的代碼庫和用途方面都對WordPress的未來產生了巨大的影響。
如果您尚未使用WordPressRESTAPI,您可能想知道它到底是什麼。
因此,讓我們開始看看RESTAPI是什麼。
什麼是WordPressRESTAPI?
WordPressRESTAPI是開發人員可以用來從WordPress安裝本身之外訪問WordPress 的介面。
您可以使用JavaScript來訪問它,這意味著它可以用於創建互動式網站和應用程序。
REST代表代表性狀態傳輸,API代表應用程序編程介面。
讓我們看一下這些含義。
什麼是應用程序編程介面(API)?
應用程序編程介面或API 定義為:
「客戶端和伺服器之間的介面或通信協議旨在簡化客戶端軟體的構建。
」
如果您不熟悉API,那可能不會有太大幫助。
簡而言之,API是允許一個系統與另一個系統交互(或「介面」)的一組代碼。
如果您曾經在WordPress網站上添加過Google地圖,則已經使用過Google的MapsAPI,該API可讓您的WordPress網站與GoogleMaps交互。
這些系統不需要完全分開。
WordPress已經有多個API,可用於插件,設置和短代碼。
插件和主題開發人員可以使用這些工具與WordPress核心進行交互並使事情發生(例如,創建簡碼和向WordPress管理員添加設置屏幕)。
RESTAPI的不同之處在於,它允許WordPress安裝本身之外的系統與WordPress進行交互,而REST是其中的一部分。
什麼是代表性狀態轉移(REST)?
代表性狀態傳輸(REST)提供了Web系統可用於相互介面的標準。
沒有REST,兩個系統將無法相互理解,因此無法來回發送數據。
為了使應用程序成為RESTful,它必須符合以下五個原則:
統一的界面。
用於訪問系統中資源的URL必須是統一的,一致的,並且可以通過諸如GET之類的通用方法(不久將有更多方法)訪問。
客戶端伺服器。
客戶端應用程序和伺服器應用程序必須分開,以便可以彼此獨立地進行開發。
如果伺服器端技術(例如WordPress)發生變化,則伺服器端應用程序(例如,一個應用程序)必須仍然能夠通過相同的簡單方法來訪問它。
無狀態。
使用API發出新請求時,伺服器不會更改狀態。
它不存儲已發出的請求。
可緩存的。
所有資源都必須是可緩存的,以提高速度並符合Web標準。
可以在伺服器或客戶端上實現緩存。
分層系統。
RESTful系統允許您使用多層來訪問它,並在需要時將數據存儲在中間伺服器中。
伺服器無法確定最終客戶端是否直接連接到它。
所有這些限制都與網頁和應用程序有關,並控制應用程序與API交互的方式。
這對WordPress意味著什麼?
將REST和API放在一起意味著WordPressRESTAPI是一組旨在使其他系統與WordPress交互的代碼,並且以確保這些系統可以相互理解的方式構建。
例如,這意味著第三方網站或移動應用程序可以訪問WordPress資料庫,從中獲取數據並向其中添加數據。
但是,有許多含義和用途。
了解WordPressRESTAPI
WordPressRESTAPI的開發是為了響應網站和應用程序開發方式的變化以及對更廣泛地開放WordPress的需求。
WordPressRESTAPI的背景
WordPressRESTAPI 於 2016年12月作為4.7版核心的一部分發布,但在此之前它是作為插件發布的。
它旨在支持一系列基於WordPress的應用程序,並將WordPress從內容管理系統轉換為應用程序平台。
WordPress.com已廣泛使用該工具,其基於JavaScript的介面使用RESTAPI與WordPress資料庫進行介面。
古騰堡(Gutenberg)編輯界面也使用了它,該界面在2019年成為核心部分。
RESTAPI擴大了WordPress可用於的應用程序範圍。
儘管內容管理系統擅長於運行複雜的網站,但應用程序平台也可以用於為基於Web的單頁應用程序或SPA提供支持(如果您曾經使用過Google文檔,則可以使用其中之一)。
在這些方法中,當用戶採取措施時將刷新內容,而不是載入新頁面。
因為它使用JavaScript(一種客戶端語言)而不是PHP(一種伺服器端語言),所以它可以使事情發生在用戶的瀏覽器中,而不必不斷地向伺服器發送請求。
對WordPress用戶和開發人員的影響
如果您是使用WordPress的用戶和/或開發人員,則RESTAPI具有許多含義。
對於用戶,這些包括:
界面更改,包括古騰堡(Gutenberg)編輯器。
WordPress移動應用程序的更改和改進。
隨著時間的推移,自託管的WordPress管理屏幕看起來更像WordPress.com屏幕。
對於開發人員來說,存在更廣泛的含義和可能性:
使用RESTAPI創建SPA的功能,可以從WordPress提取數據,但外觀與WordPress卻大不相同。
能夠將WordPress與其他前端技術和系統集成。
如果您是不編寫PHP的前端開發人員,則可以使用WordPress進行開發。
對於PHP開發人員,越來越需要擴展您的技能以包括JavaScript。
特定的更改,例如需要在頁面和後期編輯屏幕中構建古騰堡塊而不是元框。
隨著時間的流逝,WordPressRESTAPI將意味著更多的WordPress核心將使用JavaScript而不是PHP編寫。
如果您是WordPress開發人員,則意味著您將需要學習JavaScript。
如何訪問WordPressRESTAPI
您如何訪問WordPressRESTAPI?
要訪問WP-RESTAPI,您需要通過命令行訪問您的網站。
使用WordPress,這稱為WP-CLI。
您無需通過管理屏幕或直接訪問網站上的代碼來執行任何操作。
讓我們來看看如何開始。
通過WP-CLI訪問WP-REST
WP-CLI是WordPress命令行界面。
它使您可以通過計算機上的命令行界面(CLI)訪問和使用WordPress。
WP-CLI已預安裝所有Kinsta託管計劃。
要訪問CLI,請在Mac或Linux上打開「終端」,在Windows中打開「命令提示符」。
Mac上的終端
要訪問遠程站點,您需要SSH到伺服器以通過WP-CLI訪問它(無法通過SSH連接?了解如何解決SSH「拒絕連接」錯誤)。
要訪問本地站點,您只需要從命令行使用正確的目錄結構即可。
在實際測試站點上嘗試RESTAPI之前,最好在本地測試站點上進行試驗。
您需要專門訪問您站點的RESTAPI,如下所示:
http://yoursite.com/wp-json/wp/v2
然後,您可以在此之後添加元素以訪問某些類型的數據,稍後我們將對其進行詳細介紹。
這些元素稱為端點。
認證方式
訪問網站後,您可能需要進行身份驗證。
一些端點是公共的,不需要身份驗證,而其他端點則需要。
您無需在此處登錄站點管理員:RESTAPI的功能有所不同。
為了能夠通過WP-CLI對您的網站進行身份驗證,您需要安裝身份驗證插件。
對於開發安裝,BasicAuth插件可以完成工作,並且很容易使用。
但是,對於實時站點,您應該使用更可靠的身份驗證形式,例如JWTAuthentication插件,該插件使用JSONWeb令牌並且更安全。
信息儘管Kinsta本身不支持OAuth,但Enterprise及以上計劃可以要求將其實現。
然後,您可以使用命令行來訪問數據並包括身份驗證。
下面的示例curl用於測試與WordPress的連接。
它將輸出草稿列表。
curl-XGET--userusername:password-ihttp://yoursite.com/wp-json/wp/v2/posts?status=draft
草稿帖子不是公開信息,因此您需要進行身份驗證才能訪問它們。
但是,如果您要查找公開的數據,則不需要身份驗證。
因此,要檢索已發布的帖子列表,可以使用:
curl-XGEThttp://yoursite.com/wp-json/wp/v2/posts
這將獲取所有已發布的帖子,因為這些帖子是公開的。
WordPressRESTAPI命令概述
訪問站點後,您知道如何使用身份驗證(以及是否需要使用身份驗證),則需要使用一系列命令之一來與站點進行交互。
您需要使用的命令是:
GET 檢索資源,例如帖子或其他數據。
POST 向伺服器添加資源,例如帖子,附件或其他資源。
PUT 可用於編輯或更新伺服器上已存在的資源。
DELETE從伺服器中刪除資源。
小心使用!
讓我們依次看一看。
得到
該GET命令可能是最常用的命令:它檢索數據。
下面的示例(成功訪問網站後將使用此示例)將獲取您網站中所有已發布頁面的列表:
GEThttp://yoursite.com/wp-json/wp/v2/posts/?status=published
請注意,由於您已經使用WP-CLI訪問網站的完整路徑,因此我沒有在上一行中包含網站的完整路徑。
檢索到數據後,您可以使用它來告知下一步。
您可以刪除這些帖子之一,對其進行編輯或更新。
您可以簡單地將帖子輸出到您的Web應用程序。
假設您想獲取最新帖子。
您將使用此:
GEThttp://yoursite.com/wp-json/wp/v2/posts/?per_page=1
處理帖子時,可以使用許多參數。
有關更多信息,請參見WordPressRESTAPI手冊。
開機自檢
使用POST新的數據或資源添加到您的網站。
因此,例如,如果您想創建一個帖子,則可以使用以下POST命令開始:
POSThttp://yoursite.com/wp-json/wp/v2/posts/
這將創建一個新的空草稿。
然後,您可以通過使用PUT命令對其進行編輯來更新該帖子。
使用POST命令,您還可以添加帖子以外的其他資源,包括附件和其他帖子類型。
要將頁面添加到您的站點,您可以使用以下方法:
POSThttp://yoursite.com/wp-json/wp/v2/posts/pages
這將以與創建空白帖子相同的方式創建一個空白頁面。
PUT
該PUT命令使您可以編輯現有資源,包括帖子。
假設您的網站上有許多草稿。
您想檢查它們並更新其中一個使其發布。
您可以首先獲取所有草稿列表:
POSThttp://yoursite.com/wp-json/wp/v2/posts/?status="draft"
系統將為您提供所有當前草稿的列表。
您可以使用其ID更改其中之一的狀態:
PUThttp://yoursite.com/wp-json/wp/v2/posts/567
這將訪問該帖子,並允許您對其進行編輯。
然後,您可以使用status參數更改其狀態:
{
"status"="publish"
}
或者,您可以在帖子中添加內容並發布:
{
"status"="publish"
"content"="contenthere"
}
伺服器將返回200-OK狀態,告訴您PUT請求已成功編輯帖子。
刪除
該DELETE命令將執行您期望的操作:它將刪除資源。
默認情況下,如果使用它刪除帖子,則會將其放入垃圾箱,而不是將其永久刪除。
因此,如果您想將剛創建的帖子移到回收站,則可以使用以下命令:
DELETEhttp://yoursite.com/wp-json/wp/v2/posts/567
但是,如果您想繞過垃圾箱並將其永久刪除,則可以使用以下force參數:
厭倦了您的WordPress網站出現問題?通過Kinsta獲得最好,最快的託管支持!查看我們的計劃
DELETEhttp://yoursite.com/wp-json/wp/v2/posts/567?force=true
這將永久刪除該帖子,沒有撤消選項,因此應謹慎使用。
何時不使用WordPressRESTAPI
WordPressRESTAPI並非始終是開發網站或應用程序的正確方法。
在將其用於開發之前,應注意以下幾點注意事項:
兼容性
如果您的應用要在不運行JavaScript的設備上使用,或者可能被關閉的用戶使用,那麼如果您使用的是RESTAPI,則該應用將無法運行。
用PHP編碼的WordPress網站將輸出HTML,因此不會遭受此問題的困擾。
不使用JavaScript的設備越來越少,但是如果您專門針對這些設備進行開發,則RESTAPI將無法正常工作。
同樣,如果您的用戶可能會關閉JavaScript,則使用RESTAPI會引起問題。
出於可訪問性或安全性原因,一些用戶在其瀏覽器中關閉了JavaScript。
輔助功能
使用JavaScript開發的網站或應用並不總是像HTML中的輸出那樣容易訪問。
這主要是因為使用JavaScript交付動態內容的方式可能無法在屏幕閱讀器上很好地播放,並且可能給視力障礙或光敏性癲癇病患者帶來麻煩。
使用RESTAPI來訪問您的WordPress網站並以一種易於訪問的形式輸出數據意味著您可以克服這些問題,但是在開發網站時值得檢查您網站的可訪問性。
搜索引擎優化
單頁應用程序經常刷新,有時可能會導致SEO問題。
這是因為搜索引擎可能不會為首次輸出頁面時未交付的內容編製索引。
Google和其他搜索引擎正在趕上一個事實,即許多網站現在都具有SPA功能,並且正在對其進行適當索引。
但是,確實值得對使用RESTAPI開發的任何網站進行全面的SEO審核。
如何禁用WordPressRESTAPI
如果您不希望應用程序能夠使用RESTAPI訪問站點中的數據,則可以將其禁用。
請記住,任何人都可以訪問公共數據,而不僅僅是您自己。
為此,您可以安裝DisableWPRESTAPI插件。
這將為未登錄您站點的任何人禁用RESTAPI。
禁用WPRESTAPI插件
另外,您可以將一些代碼添加到主題的功能文件中或編寫自己的插件。
最好編寫一個插件,因為這不是特定於主題的功能。
在您的插件中,僅添加兩行:
add_filter('json_enabled','__return_false');
add_filter('json_jsonp_enabled','__return_false');
這將完全禁用您站點的RESTAPI。
它可能會對您的管理屏幕產生連鎖反應,因此請確保添加後一切正常。
使用WordPressRESTAPI的實際應用程序
RESTAPI為WordPress的未來提供了一些令人興奮的可能性。
以下是一些使用WordPressRESTAPI創建SPA或將WordPress鏈接到其他站點和技術的應用程序和站點的示例。
WordPress.com
WordPress.com界面
WordPress.com管理員屏幕完全使用RESTAPI構建,以提供與用戶進行交互以管理其網站的SPA。
這樣可以在界面和伺服器之間進行動態通信,併產生一個用戶友好的界面,WordPress.org可能會及時模仿。
塊編輯器(Gutenberg)
古登堡編輯
同樣在WordPress管理屏幕中,但這次也是在自託管WordPress中,Gutenberg塊編輯器利用RESTAPI與您的資料庫進行通信並創建塊。
為了使帖子類型能夠與Gutenberg編輯器一起使用,它們必須啟用RESTAPI。
這意味著,如果要註冊自定義帖子類型並使用Gutenberg,則需要添加以下行以啟用該帖子類型的塊編輯器:
"show_in_rest"=true;
特濃咖啡
特濃咖啡
EventEspresso是一個WordPress插件,可讓用戶組織和發布事件。
它利用RESTAPI,以便用戶可以從WordPress外部從中訪問數據。
這意味著您可以構建移動應用程序或SPA來管理事件。
我們兩個
我們兩個
UsTwo是一家數字代理商,其網站是使用RESTAPI作為單頁應用程序構建的。
這將使用React構建的前端與由WordPress驅動的後端結合在一起(建議閱讀:《啟動和運行成功的WordPress代理的指南》)。
他們單個頁面的內容是模塊化的,其結構與標準WordPress頁面不同。
為了使這項工作有效,他們使用了自定義頁面構建器插件,該插件使他們的團隊可以將模塊化內容添加到站點。
今日美國
今日美國
《今日美國》的網站是使用WordPressRESTAPI與網站中現有系統和模塊的集成來重建的。
RESTAPI允許使用JSON 將網站的內容推送到其他渠道,例如FacebookInstantArticles和AppleNews。
他們還為體育部分編寫了一個在線社交遊戲,該遊戲使用JavaScript構建。
WordPressRESTAPI在WordPress生態系統中打開了很多機會。
通過此深入指南,了解如何從中獲得最大收益
摘要
WordPressRESTAPI給WordPress用戶和開發人員帶來了一些激動人心的挑戰,同時也帶來了有趣的機會。
這是WordPress的未來,可能會從根本上改變我們使用WordPress開發的方式以及我們使用它的方式。
您對RESTAPI有何看法?您是否將其用於某些項目?在下面的評論部分告訴我們
原創文章,作者:WPJIAN,如若轉載,請註明出處:https://wpjian.com/zh-tw/tips/2020052733095.html
贊(0)
WPJIAN
生成海報
如何在WordPress中更改文本顏色(3種簡單方法)
上一篇
2020年5月27日pm10:44
數字營銷的變化有望在2020年實現
下一篇
2020年5月28日am12:25
相關推薦
使用技巧
初學者指南:如何使用Mailchimp
電子郵件營銷是最有效的在線營銷形式。
事實上,早在2017年,DMA就發現電子郵件營銷每花1英鎊(約合1.28美元)的平均回報為32.28英鎊(約合41.28美元),這是一筆不可思…
2019年5月29日
0
為什麼沒人閱讀您的營銷內容
幾乎每周我都會告訴客戶,他們的營銷內容存在很大的問題。
這不是主題,寫作風格,語法甚至是錯別字。
問題在於,由於內容的方式,它們的內容簡直難以閱讀格式化的。
定義:格式:「安排或…
使用技巧
2020年1月3日
0
使用技巧
WooCommerce訂單–搜索並按總金額導出到CSV
您的客戶想知道哪些訂單的價格高於100美元,哪些訂單的價格低於10美元,哪些訂單的總金額恰好為20美元。
相信我們,您的任務艱巨。
您需要的是一個工具,它允許您過濾訂單並將訂單總額導…
2019年10月6日
0
使用技巧
活動日曆–刪除活動中的所有精選圖片
有時您想徹底改變網站的外觀。
為此,您使用適合您企業身份和需求的主題。
此外,您可能希望更改所有帖子,頁面,事件等中的所有精選圖像,以便它們適合您網站的新外觀。
當然,改變數以千計的特…
2019年6月17日
0
使用技巧
需要WordPress培訓視頻嗎?這是2019年獲得他們的最佳地點中的8個
高質量的WordPress教程一直在向世界發布。
但是,並非所有WordPress培訓視頻都不錯。
為了幫助您找到正確的答案,我們決定將好,壞和醜陋除草,為您帶來我們目前最喜歡的8個…
2020年2月19日
0
使用技巧
提議的WebFontsAPI不會出現在WordPress5.9中,可能首先登陸古騰堡
在對WordPress5.9進行了一次看似成功的測試之後,提議的網路字體API被擱置。
該功能將標準化主題和插件開發人員載入字體的方式,並為未來面向用戶的功能奠定基礎。
…
2021年11月12日
0
使用技巧
如何修復WordPress中的FacebookoEmbed問題
從10月24日開始,Facebook將放棄對未經身份驗證的WordPress嵌入的支持。
因此,如果您要在WordPress網站上嵌入Facebook和Instagram內容,它們…
2020年10月21日
0
使用技巧
如何使用各種可能的方法在WordPress中編輯頁腳
由於WordPress頁腳非常有用,因此在某些時候,您必須了解頁腳、它的工作原理、編輯它的可能性以及如何刪除與您的品牌無關的預設頁腳內容。
這就是為什麼我們要向您展示如何在Wo…
2021年11月1日
0
使用技巧
如何製作一頁滾動WordPress網站
想要一種在WordPress中創建單頁網站的簡單方法嗎?一頁滾動網站現在非常流行,因為它們允許用戶在單個頁面上查看您的所有內容。
訪問者可以在更短的時間內了解您的網站的內容以…
2021年11月28日
0
如何在Google上獲得更高的排名
要使您的網站位於Google和其他搜索引擎的首頁上,您需要付出一些辛苦的工作,並且還可能取決於您嘗試達到此狀態的許多不同因素。
如果您發現自己沒有獲得最高排名,或者在將一些辛苦時間…
使用技巧
2020年1月1日
0
推薦文章
2021年將有15個WordPress開發人員關注
2021年1月23日
YoastSEO15.9:性能提升
2021年2月23日
以用戶為中心的優化:提高網站體驗的3種方法
2019年5月19日
WooCommerce–將產品類別,標籤和屬性設置為圖像替代文本
2019年9月27日
GDPR如何影響SEO
2020年10月17日
SEO社區譴責Google為免費網站審核提供建議
2020年3月10日
營銷與品牌:有什麼區別?
2021年6月1日
最佳WordPress拍賣插件:2021年的6大熱門選擇
2021年4月1日
5強大的關鍵字研究工具比較(以及如何使用它們)
2019年7月17日
SEO與GoogleAdWords-在線營銷
2019年12月30日
簡體中文
繁体中文
延伸文章資訊
- 1使用FB Conversions API增加事件與Facebook Pixel兼容 - 歐斯瑞
在相應的事件中,Facebook像素event必須與轉換API匹配event_name。 若是雙方事件時間不超過5分鐘,則會優先使用伺服器事件。 到這裡你已經可以繼續 ...
- 22021 Facebook 下廣告秘密武器- 轉換API 行銷人必讀!
使用Facebook 轉換API 並不困難,特別是如果您使用的是現有架站平台,例如Shopify 或是Wordpress等. Facebook 轉化API 追蹤什麼? Facebook 轉化AP...
- 3Facebook廣告像素、轉換API設定及網域驗證- WACA 支援中心
就在今年,FB除了像素之外,更推出了轉換API (Conversion API),能將網頁事件從WACA伺服器直接傳送到Facebook,伺服器事件與像素搭配,可以幫助商家 ...
- 4Facebook Conversions API:营销人员需要了解的内容
因此,您将获得转换,但Facebook对此一无所知。使用第二种跟踪转化的方法变得越来越重要。” ... 其他WordPress跟踪插件也具有Conversions API集成。
- 5About Conversions API | Facebook Business Help Center
The Conversions API is designed to create a direct connection between your marketing data and the...