日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
WordPressRESTAPI入門(mén)基礎(chǔ)知識(shí)點(diǎn)

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

如果您沒(méi)有使用過(guò)WordPress REST API,您可能想知道它是什么。因此,讓我們先看看REST API是什么。

在本文中,我們講解WordPress REST API的一些基礎(chǔ)知識(shí)。我們將研究它的作用、工作原理以及它給平臺(tái)帶來(lái)的變化。最后,我們將討論您可以用它做的一些事情。

當(dāng)REST API最終被添加到WordPress的核心時(shí),漫長(zhǎng)的旅程就結(jié)束了。許多人預(yù)計(jì)這一變化是該平臺(tái)歷史上WordPress向前邁出的最大一步。但是,如果您不熟悉REST API,您可能會(huì)對(duì)它所獲得的所有關(guān)注感到困惑。

簡(jiǎn)而言之,WordPress REST API的加入使WordPress變成了一個(gè)功能齊全的應(yīng)用程序框架。這顯著提高了它的“可擴(kuò)展性”,或者說(shuō)它可以通過(guò)新特性和功能進(jìn)行擴(kuò)展。此外,它還擴(kuò)展了平臺(tái)與其他站點(diǎn)和應(yīng)用程序進(jìn)行通信的潛力。

什么是WordPress REST API?

在我們深入研究WordPress REST API之前,了解我們的術(shù)語(yǔ)很重要。這是一個(gè)我們需要使用大量首字母縮略詞的主題,所以讓我們先把它們弄清楚。

什么是應(yīng)用程序編程接口 (API)?

首先,您需要知道什么是應(yīng)用程序編程接口 (API)。用最簡(jiǎn)單的術(shù)語(yǔ)來(lái)說(shuō),API是一個(gè)系統(tǒng)使其他系統(tǒng)能夠連接到其數(shù)據(jù)的一種方式。例如,當(dāng)網(wǎng)站向頁(yè)面添加Facebook的“Like”按鈕時(shí),它會(huì)通過(guò)連接到Facebook的API來(lái)實(shí)現(xiàn)這一點(diǎn)。這讓網(wǎng)頁(yè)可以使用API來(lái)接收數(shù)據(jù)(點(diǎn)贊按鈕的代碼)和發(fā)送數(shù)據(jù)(點(diǎn)贊請(qǐng)求)。

應(yīng)用程序編程接口或API被定義為:

“客戶端和服務(wù)器之間的接口或通信協(xié)議,旨在簡(jiǎn)化客戶端軟件的構(gòu)建。”

如果您不熟悉API,那可能沒(méi)有多大幫助。更簡(jiǎn)單地說(shuō),API是一組允許一個(gè)系統(tǒng)與另一個(gè)系統(tǒng)交互(或“接口”)的代碼。如果您曾經(jīng)將Google地圖添加到您的WordPress站點(diǎn),那么您就使用了Google的Maps API,它允許您的WordPress站點(diǎn)與Google Maps交互。

這些系統(tǒng)不需要完全分開(kāi)。WordPress已經(jīng)有多個(gè)API,用于插件、設(shè)置和短代碼等。插件和主題開(kāi)發(fā)人員可以使用這些來(lái)與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ù)更容易相互連接。

簡(jiǎn)而言之,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í)行的。這是一種專(zhuān)為發(fā)送、接收和存儲(chǔ)數(shù)據(jù)而設(shè)計(jì)的語(yǔ)言。我們將在本文后面介紹JSON,但我們建議您先花點(diǎn)時(shí)間熟悉一下這種語(yǔ)言。這將幫助您準(zhǔn)備好使用WordPress REST API,并理解我們將要討論的一些概念。

WordPress REST API是一個(gè)接口,開(kāi)發(fā)人員可以使用它從WordPress安裝本身之外訪問(wèn)WordPress。您可以使用JavaScript訪問(wèn)它,這意味著它可用于創(chuàng)建交互式網(wǎng)站和應(yīng)用程序。

REST代表 Representational State Transfer,API 代表應(yīng)用程序編程接口。讓我們來(lái)看看每一個(gè)的含義。

Representational State Transfer (REST) 提供了 Web 系統(tǒng)可以用來(lái)相互交互的標(biāo)準(zhǔn)。如果沒(méi)有 REST,兩個(gè)系統(tǒng)將無(wú)法相互理解,從而來(lái)回發(fā)送數(shù)據(jù)。

要使應(yīng)用程序成為RESTful,它必須符合五個(gè)原則:

所有這些約束都與網(wǎng)頁(yè)和應(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)用程序,例如,可以訪問(wèn)您的WordPress數(shù)據(jù)庫(kù),從中獲取數(shù)據(jù)并向其中添加數(shù)據(jù)。

不過(guò),這有許多含義和用途。

了解WordPress REST API

WordPress REST API的功能與我們已經(jīng)提到的例子大體相同?;旧希琖ordPress REST API使您可以從任何與JSON兼容的框架中訪問(wèn)WordPress的所有功能。

與Twitter的API使您能夠檢索和發(fā)送推文的方式類(lèi)似,WordPress REST API可用于管理來(lái)自外部平臺(tái)的文章、用戶、類(lèi)別等。這使您能夠以多種前所未有的方式使用WordPress。

WordPress REST API的背景

REST API早在2013年就宣布了,它以插件的形式開(kāi)始,旨在通過(guò)4.1版將其合并到WordPress核心中。正如經(jīng)常發(fā)生的那樣,延遲會(huì)推遲發(fā)布,直到三年后隨著WordPress 4.7的發(fā)布,它最終被實(shí)現(xiàn)到核心中。

WordPress REST API于2016年12月作為4.7版核心的一部分發(fā)布,但在此之前它作為插件存在。

對(duì)于許多人來(lái)說(shuō),這是一個(gè)漫長(zhǎng)但值得的等待,他們將WordPress REST API視為平臺(tái)向前邁出的重要一步。您可能想知道為什么這個(gè)添加如此重要,特別是因?yàn)楹芏嘤脩艨赡軟](méi)有注意到太大的區(qū)別。事實(shí)證明,出于多種原因,包含REST API是對(duì)WordPress的根本性更改。

例如,通過(guò)實(shí)施REST API,WordPress從簡(jiǎn)單的創(chuàng)建網(wǎng)站的平臺(tái)邁出了一步。相反,它現(xiàn)在已經(jīng)成為一個(gè)成熟的應(yīng)用程序框架。這意味著開(kāi)發(fā)人員可以使用WordPress站點(diǎn)為移動(dòng)設(shè)備和網(wǎng)絡(luò)創(chuàng)建應(yīng)用程序,或作為信息存儲(chǔ)庫(kù)。

這種轉(zhuǎn)變也使WordPress擺脫了對(duì)PHP的依賴(lài)。通過(guò)使WordPress與任何JSON-compatible語(yǔ)言兼容,REST API極大地?cái)U(kuò)展了開(kāi)發(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ù)庫(kù)進(jìn)行交互。古騰堡編輯界面也使用它,該界面在2019年成為核心的一部分。

REST API擴(kuò)大了WordPress可用于的應(yīng)用程序范圍。雖然內(nèi)容管理系統(tǒng)擅長(zhǎng)運(yùn)行復(fù)雜的網(wǎng)站,但應(yīng)用程序平臺(tái)也可用于支持基于Web的單頁(yè)應(yīng)用程序或SPA(如果您曾經(jīng)使用過(guò)Google文檔,那么您已經(jīng)使用過(guò)其中之一)。

在這些中,當(dāng)用戶執(zhí)行操作時(shí)會(huì)刷新內(nèi)容,而不是加載新頁(yè)面。因?yàn)樗褂肑avaScript(一種客戶端語(yǔ)言)而不是PHP(一種服務(wù)器端語(yǔ)言),所以它可以在用戶的??瀏覽器中進(jìn)行操作,而無(wú)需不斷地向服務(wù)器發(fā)送請(qǐng)求。

對(duì)WordPress用戶和開(kāi)發(fā)人員的影響

如果您是使用WordPress的用戶和/或開(kāi)發(fā)人員,那么REST API有很多含義。

對(duì)于用戶,這些包括:

  • 對(duì)界面的更改,包括古騰堡編輯器。
  • 對(duì)WordPress移動(dòng)應(yīng)用程序的更改和改進(jìn)。
  • 隨著時(shí)間的推移,自托管的WordPress管理屏幕看起來(lái)更像WordPress.com屏幕。

對(duì)于開(kāi)發(fā)者來(lái)說(shuō),還有更廣泛的意義和可能性:

  • 能夠使用REST API創(chuàng)建SPA,從WordPress中提取數(shù)據(jù),但看起來(lái)與WordPress非常不同。
  • 將WordPress與其他前端技術(shù)和系統(tǒng)集成的能力。
  • 如果您是不編寫(xiě)PHP的前端開(kāi)發(fā)人員,則可以使用WordPress進(jìn)行開(kāi)發(fā)。
  • 對(duì)于PHP開(kāi)發(fā)人員來(lái)說(shuō),越來(lái)越需要擴(kuò)展您的技能以包含JavaScript。
  • 特定更改,例如需要在頁(yè)面和后期編輯屏幕中構(gòu)建古騰堡區(qū)塊而不是元框。

隨著時(shí)間的推移,WordPress REST API將意味著更多的WordPress核心將用JavaScript而不是PHP編寫(xiě)。如果您是WordPress開(kāi)發(fā)人員,這意味著您需要學(xué)習(xí)JavaScript。

REST API和JSON如何協(xié)同工作

最后,REST API在可用于平臺(tái)的接口方面提供了更高的靈活性。它使管理界面完全可選,因?yàn)槟F(xiàn)在可以完全通過(guò)JSON命令與您的WordPress站點(diǎn)進(jìn)行交互。讓我們看看JSON和REST API如何結(jié)合起來(lái)使這成為可能。

WordPress REST API是為了響應(yīng)網(wǎng)站和應(yīng)用程序開(kāi)發(fā)方式的變化以及更廣泛地開(kāi)放WordPress的需要而開(kāi)發(fā)的。

到目前為止,您應(yīng)該對(duì)WordPress REST API的理論方面有所了解,所以讓我們看看該技術(shù)更實(shí)用的方面。官方手冊(cè)介紹如何使用REST API,如下所示:

“WordPress REST API為WordPress數(shù)據(jù)類(lèi)型提供API端點(diǎn),允許開(kāi)發(fā)人員通過(guò)發(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ù)的最簡(jiǎn)單方法。默認(rèn)情況下,WordPress提供了大量可供使用的標(biāo)準(zhǔn)端點(diǎn),但開(kāi)發(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ù)。通過(guò)使用不同的路由,您可以訪問(wèn)不同的端點(diǎn),以獲取特定類(lèi)型的信息并執(zhí)行各種任務(wù)。

您將在REST API中使用三個(gè)主要的JSON請(qǐng)求,所以現(xiàn)在讓我們快速瀏覽一下它們。他們是:

  • GET-此類(lèi)請(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)求是用來(lái)刪除數(shù)據(jù)的。這使您能夠刪除文章、頁(yè)面、用戶等。

有時(shí)可以將GET和POST與相同的端點(diǎn)一起使用以獲得不同的結(jié)果。例如,讓我們看看端點(diǎn)/me/settings/。如果您要在此端點(diǎn)上執(zhí)行GET請(qǐng)求,您將收到當(dāng)前用戶設(shè)置的列表。但是,通過(guò)在同一端點(diǎn)上使用POST請(qǐng)求,您將能夠改為更新設(shè)置。

如何訪問(wèn)WordPress REST API

您如何訪問(wèn)WordPress REST API?

要訪問(wèn)WP-REST API,您需要通過(guò)命令行訪問(wèn)您的站點(diǎn)。對(duì)于WordPress,這稱(chēng)為WP-CLI。您不會(huì)通過(guò)管理屏幕或直接訪問(wèn)您網(wǎng)站上的代碼來(lái)執(zhí)行任何這些操作。

讓我們來(lái)看看你是如何開(kāi)始的。

通過(guò)WP-CLI 訪問(wèn)WP-REST

WP-CLI是WordPress命令行界面。它允許您通過(guò)計(jì)算機(jī)上的命令行界面 (CLI) 訪問(wèn)和使用WordPress。

要訪問(wèn)CLI,請(qǐng)?jiān)贛ac或Linux中打開(kāi)終端,或在Windows中打開(kāi)命令提示符。

Mac上的終端

要訪問(wèn)遠(yuǎn)程站點(diǎn),您需要SSH到您的服務(wù)器以通過(guò)WP-CLI訪問(wèn)它(無(wú)法通過(guò)SSH連接?了解如何修復(fù)SSH“連接被拒絕”錯(cuò)誤)。

要訪問(wèn)本地站點(diǎn),您只需從命令行使用正確的目錄結(jié)構(gòu)。在實(shí)際站點(diǎn)上試用REST API之前,最好先在本地測(cè)試站點(diǎn)上試用REST API。

您需要專(zhuān)門(mén)訪問(wèn)您網(wǎng)站的REST API,如下所示:

http://yoursite.com/wp-json/wp/v2

然后,您可以在此之后添加元素以訪問(wèn)某些類(lèi)型的數(shù)據(jù),我們稍后將更詳細(xì)地介紹這些數(shù)據(jù)。這些元素稱(chēng)為端點(diǎn)。

驗(yàn)證

訪問(wèn)站點(diǎn)后,您可能需要進(jìn)行身份驗(yàn)證。一些端點(diǎn)是公共的,不需要身份驗(yàn)證,而其他端點(diǎn)則需要。

您不是在此處登錄站點(diǎn)管理員:REST API的處理方式略有不同。

為了能夠通過(guò)WP-CLI對(duì)您的站點(diǎn)進(jìn)行身份驗(yàn)證,您需要安裝一個(gè)身份驗(yàn)證插件。對(duì)于開(kāi)發(fā)安裝,Basic Auth插件可以完成這項(xiàng)工作并且很容易使用。

但是,對(duì)于實(shí)時(shí)站點(diǎn),您應(yīng)該使用更強(qiáng)大的身份驗(yàn)證形式,例如JWT身份驗(yàn)證插件,它使用JSON Web Token并且更安全。

然后,您可以使用命令行訪問(wèn)數(shù)據(jù)并包括身份驗(yàn)證。

下面的示例curl用于測(cè)試與WordPress的連接。它將輸出一個(gè)草稿列表。

curl -X GET --user username:password -i http://yoursite.com/wp-json/wp/v2/posts?status=draft

草稿帖子不是公開(kāi)信息,因此您需要進(jìn)行身份驗(yàn)證才能訪問(wèn)它們。但是,如果您要查找公開(kāi)數(shù)據(jù),則不需要身份驗(yàn)證。因此,要檢索已發(fā)布的文章列表,您可以使用:

curl -X GET http://yoursite.com/wp-json/wp/v2/posts

這將獲取所有已發(fā)布的文章,因?yàn)檫@些帖子是公開(kāi)的。

WordPress REST API命令概述

我們現(xiàn)在將把所有這些理論付諸實(shí)踐,并向您展示一些非常基本的示例,說(shuō)明您可以使用REST API做什么。這只是一種嘗試,以幫助您習(xí)慣使用REST API來(lái)處理對(duì)WordPress的請(qǐng)求。有關(guān)更多示例,我們建議您查看官方參考庫(kù)和REST API資源。

以下技術(shù)將要求您使用命令行來(lái)處理JSON請(qǐng)求。這使您能夠通過(guò)使用基于文本的界面和發(fā)送簡(jiǎn)單的命令與您的 WordPress 站點(diǎn)進(jìn)行交互。如果您沒(méi)有任何使用命令行的經(jīng)驗(yàn),我們建議您先花一些時(shí)間學(xué)習(xí)基礎(chǔ)知識(shí)。您可能還想使用SSH來(lái)創(chuàng)建與您的站點(diǎn)的連接。

最后,當(dāng)您準(zhǔn)備好時(shí),讓我們看一些有關(guān)如何使用WordPress REST API的示例!

一旦您訪問(wèn)了您的站點(diǎn)并且您知道如何使用身份驗(yàn)證(以及您是否需要),您將需要使用一系列命令中的一個(gè)來(lái)與您的站點(diǎn)進(jìn)行交互。

您需要使用的命令是:

  • GET 檢索資源,例如文章或其他一些數(shù)據(jù)。
  • POST 向服務(wù)器添加資源,例如文章、附件或其他資源。
  • PUT 可用于編輯或更新服務(wù)器上已有的資源。
  • DELETE從服務(wù)器中刪除資源。小心使用!

讓我們依次來(lái)看看其中的每一個(gè)。

Get

GET命令可能是最常用的:它檢索數(shù)據(jù)。下面的示例(您在成功訪問(wèn)您的網(wǎng)站后使用)將獲取您網(wǎng)站中所有已發(fā)布頁(yè)面的列表:

GET http://yoursite.com/wp-json/wp/v2/posts/?status=published

請(qǐng)注意,我沒(méi)有在上面的行中包含您站點(diǎn)的完整路徑,因?yàn)槟呀?jīng)使用WP-CLI訪問(wèn)了該路徑。

檢索到該數(shù)據(jù)后,您可以使用它來(lái)通知您的下一步。您可以刪除其中一個(gè)文章,對(duì)其進(jìn)行編輯或更新。您可以簡(jiǎ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命令開(kāi)始:

POST http://yoursite.com/wp-json/wp/v2/posts/

這將創(chuàng)建一個(gè)新的空草稿文章。

然后,您可以通過(guò)使用PUT命令進(jìn)行編輯來(lái)更新文章。

使用POST命令,您還可以添加文章以外的其他資源,包括附件和其他文章類(lèi)型。

要將頁(yè)面添加到您的站點(diǎn),您可以使用以下方法:

POST http://yoursite.com/wp-json/wp/v2/posts/pages

這會(huì)以與創(chuàng)建空文章相同的方式創(chuàng)建一個(gè)空頁(yè)面。

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

這將訪問(wèn)該文章并允許您對(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)情況下,如果您使用它來(lái)刪除文章,它會(huì)將其放入垃圾箱,而不是永久刪除。

因此,如果您想將剛剛創(chuàng)建的文章移至垃圾箱,您可以使用以下命令:

DELETE http://yoursite.com/wp-json/wp/v2/posts/567

但是,如果您想繞過(guò)垃圾箱并永久刪除它,您可以使用以下force參數(shù):

DELETE http://yoursite.com/wp-json/wp/v2/posts/567?force=true

這將永久刪除文章,無(wú)法撤消,因此應(yīng)謹(jǐn)慎使用。

一些例子

1. 從站點(diǎn)返回文章

雖然您顯然需要適當(dāng)?shù)氖跈?quán)來(lái)編輯站點(diǎn),但幾乎可以從任何 WordPress 站點(diǎn)檢索一些信息。這是因?yàn)镽EST API在所有WordPress安裝中都是一致的。

正如我們所討論的,API存在的一個(gè)主要原因是使外部應(yīng)用程序能夠訪問(wèn)您的某些數(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)用程序中使用此信息,例如,使用您自己的自定義樣式來(lái)顯示它。

如果您想返回博客中的每篇文章,您所要做的就是刪除末尾的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)求來(lái)更新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ù),你可以用它來(lái)進(jìn)行更改后。例如,您可以使用列表為文章分配類(lèi)別、發(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)制永久刪除而不是將用戶添加到垃圾箱。

通過(guò)這些示例,您可以開(kāi)始了解REST API如何使您能夠管理站點(diǎn)上的內(nèi)容并連接到其他站點(diǎn)。如果您想了解更多信息,我們建議您深入研究REST API手冊(cè),并查看有關(guān)學(xué)習(xí)JSON的課程。

何時(shí)不使用WordPress REST API

WordPress REST API并不總是開(kāi)發(fā)網(wǎng)站或應(yīng)用程序的正確方法。在使用它進(jìn)行開(kāi)發(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ì)遇到此問(wèn)題。不使用JavaScript的設(shè)備越來(lái)越少,但如果您專(zhuān)門(mén)為這些設(shè)備開(kāi)發(fā),REST API將無(wú)法工作。

同樣,如果您的用戶可能會(huì)關(guān)閉JavaScript,那么使用REST API會(huì)導(dǎo)致問(wèn)題。出于可訪問(wèn)性或安全原因,某些用戶會(huì)在其瀏覽器中關(guān)閉JavaScript。

無(wú)障礙

使用JavaScript開(kāi)發(fā)的站點(diǎn)或應(yīng)用程序并不總是像HTML輸出那樣易于訪問(wèn)。

這主要是因?yàn)镴avaScript用于傳遞動(dòng)態(tài)內(nèi)容的方式可能無(wú)法與屏幕閱讀器很好地配合使用,并且可能會(huì)給視力障礙或光敏性癲癇患者帶來(lái)問(wèn)題。

使用REST API訪問(wèn)您的WordPress站點(diǎn)并以可訪問(wèn)的形式輸出數(shù)據(jù)意味著您可以克服這些問(wèn)題,但在開(kāi)發(fā)站點(diǎn)時(shí)檢查站點(diǎn)的可訪問(wèn)性是值得的。

搜索引擎優(yōu)化

頻繁刷新的單頁(yè)應(yīng)用程序有時(shí)會(huì)導(dǎo)致SEO問(wèn)題。這是因?yàn)榈谝淮屋敵鲰?yè)面時(shí)未交付的內(nèi)容可能不會(huì)被搜索引擎索引。

谷歌和其他搜索引擎正在迎頭趕上這樣一個(gè)事實(shí),即現(xiàn)在許多網(wǎng)站都由SPA驅(qū)動(dòng),并且正在適當(dāng)?shù)貙⑺鼈兙幦胨饕?。但是,?duì)您使用REST API開(kāi)發(fā)的任何站點(diǎn)進(jìn)行徹底的SEO審核確實(shí)值得。

如何禁用WordPress REST API

如果您不希望應(yīng)用程序能夠使用REST API從您的站點(diǎn)訪問(wèn)數(shù)據(jù),您可以禁用它。請(qǐng)記住,任何人都可以訪問(wèn)公共數(shù)據(jù),而不僅僅是您。

為此,您可以安裝Disable WP REST API插件。這將為未登錄到您的站點(diǎn)的任何人禁用REST API。

禁用WP REST API插件

或者,您可以向主題的函數(shù)文件中添加一些代碼或編寫(xiě)自己的插件。最好編寫(xiě)一個(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的未來(lái)提供了一些令人興奮的可能性。以下是使用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ù)庫(kù)進(jìn)行通信并創(chuàng)建塊。

要使文章類(lèi)型與Gutenberg編輯器一起使用,它們必須啟用REST API。這意味著,如果您要注冊(cè)自定義文章類(lèi)型并使用Gutenberg,則需要添加以下行以啟用該文章類(lèi)型的區(qū)塊編輯器:

"show_in_rest" = true;

Event Espresso

Event Espresso

Event Espresso是一個(gè)WordPress插件,可讓用戶組織和宣傳活動(dòng)。它利用REST API,以便用戶可以從WordPress外部訪問(wèn)其中的數(shù)據(jù)。這意味著您可以構(gòu)建移動(dòng)應(yīng)用程序或SPA來(lái)管理您的活動(dòng)。

UsTwo

UsTwo

UsTwo是一家數(shù)字機(jī)構(gòu),其網(wǎng)站是使用REST API作為單頁(yè)應(yīng)用程序構(gòu)建的。這結(jié)合了使用React構(gòu)建的前端和由WordPress提供支持的后端。

他們的單個(gè)頁(yè)面的內(nèi)容是模塊化的,其結(jié)構(gòu)與標(biāo)準(zhǔn)的WordPress頁(yè)面不同。為了完成這項(xiàng)工作,他們使用了一個(gè)自定義頁(yè)面構(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。他們還為他們的體育部分編寫(xiě)了一個(gè)使用JavaScript構(gòu)建的在線社交游戲。

小結(jié)

WordPress REST API為平臺(tái),是一個(gè)巨大的進(jìn)步,遠(yuǎn)離其根源和未來(lái)。開(kāi)發(fā)人員從一開(kāi)始就很興奮,但如果您一開(kāi)始不熟悉REST API,您可能會(huì)對(duì)其中的原理感到困惑。

WordPress REST API為WordPress用戶和開(kāi)發(fā)人員帶來(lái)了一些令人興奮的挑戰(zhàn),但也帶來(lái)了有趣的機(jī)會(huì)。這是WordPress的未來(lái),很可能會(huì)徹底改變我們使用WordPress進(jìn)行開(kāi)發(fā)的方式以及我們使用它的方式。


新聞標(biāo)題:WordPressRESTAPI入門(mén)基礎(chǔ)知識(shí)點(diǎn)
網(wǎng)頁(yè)鏈接:http://www.5511xx.com/article/coieocg.html