讓W(xué)ordpress成為你微信小程序的文章管理利器

Wordpress闪盔,相信很多很多人都用過弯院,是一款大名鼎鼎的內(nèi)容管理系統(tǒng)(CMS),因其社區(qū)的強(qiáng)大泪掀,插件的豐富听绳,用它來建網(wǎng)站和博客真的是非常方便好用。它擁有功能強(qiáng)大的管理后臺(tái)异赫,使得對(duì)目錄椅挣、文章以及標(biāo)簽的創(chuàng)建和管理,都變得輕松簡單塔拳。

我們?cè)谠O(shè)計(jì)和開發(fā)我們的微信小程序的時(shí)候鼠证,可能會(huì)遇到需要?jiǎng)?chuàng)建和管理一系列文章類型的內(nèi)容,比如一個(gè)法律手冊(cè)小程序靠抑,或是一個(gè)菜譜小程序量九。這種時(shí)候,我們有兩種選擇:

自己開發(fā)一個(gè)文章管理功能

借助現(xiàn)有的CMS產(chǎn)品

自己開發(fā)一個(gè)固然不錯(cuò)颂碧,可以根據(jù)自己的實(shí)際需要荠列,來靈活的進(jìn)行功能的定制。但是载城,要開發(fā)好一個(gè)這樣的功能肌似,還是需要一定的工作量的∷咄撸快速開發(fā)出一個(gè)產(chǎn)品并投入市場川队,去驗(yàn)證自己的產(chǎn)品設(shè)想是否正確,是一個(gè)非常重要的事情睬澡。我們要適當(dāng)?shù)牟捎媚脕碇髁x固额,爭取節(jié)約開發(fā)產(chǎn)品的周期。從這一點(diǎn)出發(fā)猴贰,Wordpress就為我們?cè)趦?nèi)容管理這類需求上面,提供了一個(gè)很好很現(xiàn)成的工具河狐。

好了米绕,閑話不多說瑟捣,我們來看一下怎么讓W(xué)ordpress成為我們的微信小程序的內(nèi)容發(fā)動(dòng)機(jī)。

架構(gòu)概覽

在服務(wù)器端栅干,我們分為主管業(yè)務(wù)的后端程序和主管文章內(nèi)容的Wordpress程序迈套,它們都通過Nginx或Apache進(jìn)行代理,向外暴露服務(wù)接口(或者你不想讓外面直接訪問你的wordpress的話碱鳞,wordpress可以省去代理桑李,藏在服務(wù)器內(nèi)部,僅提供來自主業(yè)務(wù)后端程序的訪問)窿给。

然后小程序客戶端方面贵白,就可以通過Nginx暴露出來的接口,訪問到主業(yè)務(wù)提供的服務(wù)和wordpress的服務(wù)崩泡。

安裝Wordpress與設(shè)置

Wordpress安裝的教程網(wǎng)上太多了禁荒,我就不詳細(xì)介紹了,自行搜索吧角撞。安裝完成后呛伴,你就可以登錄它的管理后臺(tái),進(jìn)行文章和目錄之類的撰寫管理了谒所。

下一步热康,我們要讓外部程序可以更方便的調(diào)用Wordpress的功能,讓我們可以通過REST API來操作和獲取Wordpress中的數(shù)據(jù)劣领。Wordpress可以通過安裝插件來提供這樣的功能姐军,而且類似功能的插件不止一個(gè)。我在這里剖踊,使用了一個(gè)名為Wordpress Rest API的插件庶弃,這個(gè)插件提供的功能比較全面一些本谜,而且在最新版本的Wordpress中糙麦,它的功能已經(jīng)被官方作為基礎(chǔ)功能集成進(jìn)了Wordpress中,所以比較推薦使用亲桥。

安裝并在插件管理頁面啟用這個(gè)插件以后(怎么安裝和啟用我不贅述了梆造,簡單的令人發(fā)指缴守,自行搞定吧),我們就擁有了通過REST API操作Wordpresss的能力镇辉。

比如通過發(fā)起GET請(qǐng)求URL地址:http://your-domain/wp-json/wp/v2/posts屡穗,我們就可以獲取到JSON格式的Wordpress中的文章列表。當(dāng)然忽肛,也可以通過POST請(qǐng)求村砂,DELETE請(qǐng)求等,執(zhí)行創(chuàng)建和刪除文章的操作屹逛。

你可以點(diǎn)擊這個(gè)鏈接础废,看一下輸出的示例數(shù)據(jù)汛骂。

更多功能呢,可以查看插件使用手冊(cè)

了解了這一點(diǎn)评腺,我們就可以對(duì)Wordpress中的內(nèi)容進(jìn)行進(jìn)一步的開發(fā)利用了帘瞭。

開發(fā)

至此,小程序就可以直接調(diào)用暴露出來的Wordpress REST API了蒿讥,例如:

wx.request({

url: 'https://your-domain/wp-json/wp/v2/posts',

header: {

'content-type': 'application/json'

},

success: function(res) {

console.log(res.data)

}

})

但是蝶念,為了保證入口的統(tǒng)一性,以及有可能對(duì)從Wordpress中的數(shù)據(jù)需要進(jìn)行二次加工的便利性芋绸,我們推薦從主業(yè)務(wù)后端程序中發(fā)起對(duì)Wordpress的REST API調(diào)用媒殉。

比如我要做一個(gè)從Wordpress中搜索我的文章的功能。我會(huì)從我的Node.js寫的后端程序中發(fā)起對(duì)Wordpress REST API的調(diào)用侥钳,代碼大致像這樣的(其他后臺(tái)語言可以做個(gè)參考):

post.service.js

const request = require('request')

const errors = require('../consts/errors')

const WP_JSON_API = 'https://xxxxxx/wp-json/wp/v2'

function search(keyword) {

return new Promise((resolve, reject) => {

// 調(diào)用Wordpress:

// https://xxxxxx/wp-json/wp/v2?per_page=10&search=xxxx

request.get(`${WP_JSON_API}/posts`, {

json: true,

qs: {

per_page: 10,

search: keyword

}

}, (err, resp, result) => {

if (err) {

reject(errors.KW_SEARCH_POST_FAIL)

} else {

// result就是從wordpress中獲取到的JSON數(shù)據(jù)了

// 你可以在這里對(duì)數(shù)據(jù)再做一些額外的加工适袜,比如去掉數(shù)據(jù)我們不需要的字段等等...

resolve(result)

}

})

})

}

post.route.js

const express = require('express')

const router = express.Router()

const resUtil = require('../lib/util/response')

const postService = require('../../services/post')

// 這是實(shí)際給小程序調(diào)用的API

// https://xxxxx/api/posts/search?keyword=xxxx

router.get('/api/posts/search', async (req, res) => {

try {

const keyword = req.query.keyword

const posts = await postService.search(keyword)

resUtil.success(res, posts)

} catch (e) {

resUtil.error(res, e)

}

})

然后,微信小程序客戶端程序代碼就可以調(diào)用我們主業(yè)務(wù)后端代碼中提供的搜索文章的API了:

wx.request({

url: 'https://your-domain/api/posts/search',

data: {

keyword: '這里是搜索關(guān)鍵字'

},

header: {

'content-type': 'application/json'

},

success: function(res) {

console.log(res.data)

}

})

相信你看懂了這些舷夺,就能更有效的對(duì)Wordpress進(jìn)行開發(fā)利用了苦酱。而且不止是對(duì)Wordpress,很多有用的開源軟件给猾,我們都可以用類似的方法加以利用疫萤,節(jié)約我們開發(fā)產(chǎn)品的時(shí)間,為我們帶來更多的機(jī)會(huì)敢伸。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末扯饶,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子池颈,更是在濱河造成了極大的恐慌尾序,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件躯砰,死亡現(xiàn)場離奇詭異每币,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)琢歇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門兰怠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人李茫,你說我怎么就攤上這事揭保。” “怎么了魄宏?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵秸侣,是天一觀的道長。 經(jīng)常有香客問我,道長味榛,這世上最難降的妖魔是什么方篮? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮励负,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘匕得。我一直安慰自己继榆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布汁掠。 她就那樣靜靜地躺著略吨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪考阱。 梳的紋絲不亂的頭發(fā)上翠忠,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音乞榨,去河邊找鬼秽之。 笑死,一個(gè)胖子當(dāng)著我的面吹牛吃既,可吹牛的內(nèi)容都是我干的考榨。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼鹦倚,長吁一口氣:“原來是場噩夢啊……” “哼河质!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起震叙,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤掀鹅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后媒楼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乐尊,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年匣砖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了科吭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡猴鲫,死狀恐怖对人,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拂共,我是刑警寧澤牺弄,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站宜狐,受9級(jí)特大地震影響势告,放射性物質(zhì)發(fā)生泄漏蛇捌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一咱台、第九天 我趴在偏房一處隱蔽的房頂上張望络拌。 院中可真熱鬧,春花似錦回溺、人聲如沸春贸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽萍恕。三九已至,卻和暖如春车要,著一層夾襖步出監(jiān)牢的瞬間允粤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國打工翼岁, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留类垫,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓琅坡,卻偏偏與公主長得像阔挠,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子脑蠕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容