Wordpress,相信不少不少人都用過,是一款大名鼎鼎的內容管理系統(CMS),因其社區的強大,插件的豐富,用它來建網站和博客真的是很是方便好用。它擁有功能強大的管理後臺,使得對目錄、文章以及標籤的建立和管理,都變得輕鬆簡單。express
咱們在設計和開發咱們的微信小程序的時候,可能會遇到須要建立和管理一系列文章類型的內容,好比一個法律手冊小程序,或是一個菜譜小程序。這種時候,咱們有兩種選擇:json
本身開發一個當然不錯,能夠根據本身的實際須要,來靈活的進行功能的定製。可是,要開發好一個這樣的功能,仍是須要必定的工做量的。快速開發出一個產品並投入市場,去驗證本身的產品設想是否正確,是一個很是重要的事情。咱們要適當的採用拿來主義,爭取節約開發產品的週期。從這一點出發,Wordpress就爲咱們在內容管理這類需求上面,提供了一個很好很現成的工具。小程序
好了,閒話很少說,咱們來看一下怎麼讓Wordpress成爲咱們的微信小程序的內容發動機。後端
在服務器端,咱們分爲主管業務的後端程序和主管文章內容的Wordpress程序,它們都經過Nginx或Apache進行代理,向外暴露服務接口(或者你不想讓外面直接訪問你的wordpress的話,wordpress能夠省去代理,藏在服務器內部,僅提供來自主業務後端程序的訪問)。微信小程序
而後小程序客戶端方面,就能夠經過Nginx暴露出來的接口,訪問到主業務提供的服務和wordpress的服務。api
Wordpress安裝的教程網上太多了,我就不詳細介紹了,自行搜索吧。安裝完成後,你就能夠登陸它的管理後臺,進行文章和目錄之類的撰寫管理了。服務器
下一步,咱們要讓外部程序能夠更方便的調用Wordpress的功能,讓咱們能夠經過REST API來操做和獲取Wordpress中的數據。Wordpress能夠經過安裝插件來提供這樣的功能,並且相似功能的插件不止一個。我在這裏,使用了一個名爲Wordpress Rest API的插件,這個插件提供的功能比較全面一些,並且在最新版本的Wordpress中,它的功能已經被官方做爲基礎功能集成進了Wordpress中,因此比較推薦使用。微信
安裝並在插件管理頁面啓用這個插件之後(怎麼安裝和啓用我不贅述了,簡單的使人髮指,自行搞定吧),咱們就擁有了經過REST API操做Wordpresss的能力。架構
好比經過發起GET請求URL地址:http://your-domain/wp-json/wp/v2/posts,咱們就能夠獲取到JSON格式的Wordpress中的文章列表。固然,也能夠經過POST請求,DELETE請求等,執行建立和刪除文章的操做。app
你能夠點擊這個連接,看一下輸出的示例數據。
瞭解了這一點,咱們就能夠對Wordpress中的內容進行進一步的開發利用了。
至此,小程序就能夠直接調用暴露出來的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) } })
可是,爲了保證入口的統一性,以及有可能對從Wordpress中的數據須要進行二次加工的便利性,咱們推薦從主業務後端程序中發起對Wordpress的REST API調用。
好比我要作一個從Wordpress中搜索個人文章的功能。我會從個人Node.js寫的後端程序中發起對Wordpress REST API的調用,代碼大體像這樣的(其餘後臺語言能夠作個參考):
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) => { // 調用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數據了 // 你能夠在這裏對數據再作一些額外的加工,好比去掉數據咱們不須要的字段等等... resolve(result) } }) }) }
post.route.js
const express = require('express') const router = express.Router() const resUtil = require('../lib/util/response') const postService = require('../../services/post') // 這是實際給小程序調用的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) } })
而後,微信小程序客戶端程序代碼就能夠調用咱們主業務後端代碼中提供的搜索文章的API了:
wx.request({ url: 'https://your-domain/api/posts/search', data: { keyword: '這裏是搜索關鍵字' }, header: { 'content-type': 'application/json' }, success: function(res) { console.log(res.data) } })
相信你看懂了這些,就能更有效的對Wordpress進行開發利用了。並且不止是對Wordpress,不少有用的開源軟件,咱們均可以用相似的方法加以利用,節約咱們開發產品的時間,爲咱們帶來更多的機會。