让Wordpress成为你微信小程序的文章管理利器

Wordpress,相信很多很多人都用过,是一款大名鼎鼎的内容管理系统(CMS),因其社区的强大,插件的丰富,用它来建网站和博客真的是非常方便好用。它拥有功能强大的管理后台,使得对目录、文章以及标签的创建和管理,都变得轻松简单。

我们在设计和开发我们的微信小程序的时候,可能会遇到需要创建和管理一系列文章类型的内容,比如一个法律手册小程序,或是一个菜谱小程序。这种时候,我们有两种选择:

自己开发一个文章管理功能

借助现有的CMS产品

自己开发一个固然不错,可以根据自己的实际需要,来灵活的进行功能的定制。但是,要开发好一个这样的功能,还是需要一定的工作量的。快速开发出一个产品并投入市场,去验证自己的产品设想是否正确,是一个非常重要的事情。我们要适当的采用拿来主义,争取节约开发产品的周期。从这一点出发,Wordpress就为我们在内容管理这类需求上面,提供了一个很好很现成的工具。

好了,闲话不多说,我们来看一下怎么让Wordpress成为我们的微信小程序的内容发动机。

架构概览

在服务器端,我们分为主管业务的后端程序和主管文章内容的Wordpress程序,它们都通过Nginx或Apache进行代理,向外暴露服务接口(或者你不想让外面直接访问你的wordpress的话,wordpress可以省去代理,藏在服务器内部,仅提供来自主业务后端程序的访问)。

然后小程序客户端方面,就可以通过Nginx暴露出来的接口,访问到主业务提供的服务和wordpress的服务。

安装Wordpress与设置

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请求等,执行创建和删除文章的操作。

你可以点击这个链接,看一下输出的示例数据

更多功能呢,可以查看插件使用手册

了解了这一点,我们就可以对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,很多有用的开源软件,我们都可以用类似的方法加以利用,节约我们开发产品的时间,为我们带来更多的机会。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容