Typecho小程序这事儿,程序我得说点大实话。程序去年帮朋友折腾他的程序个人博客,后台挂着Typecho,程序前台想弄个小程序端,程序结果网上一搜教程,程序全是程序三年前的旧文,插件市场里的程序小程序方案要么停更,要么就是程序个半成品。最后我们干脆自己撸了个简易版,程序过程比想象中简单,程序也比想象中坑多。程序
核心逻辑其实就一条:Typecho提供API,程序小程序负责渲染。程序别指望官方给你现成的程序轮子,人家定位是轻量博客系统,压根没打算伺候移动端。但反过来想,正因为它轻,你反而能自由发挥——数据库结构简单,路由规则清晰,拿它的XML-RPC接口或者自己写几个PHP接口都行。我们最后选了后者,直接新建一个模板文件,输出JSON格式的文章列表和详情,小程序那边用request拉数据,完事儿。
坑在哪儿呢?第一是图片处理。Typecho默认上传的图片是原图,小程序里显示起来又大又慢。你得在接口里加上缩略图裁剪参数,或者干脆用第三方图床。第二是评论功能,Typecho的评论逻辑跟微信登录体系完全不搭,要么让用户匿名评论,要么就得做微信授权绑定,麻烦得很。我们当时直接砍掉了评论,只保留文章浏览和搜索——反正博客主人在电脑端管理后台看评论,移动端纯阅读也说得过去。
还有个细节特有意思。Typecho的文章分类和标签是独立表,关联查询时容易忽略索引,数据量一旦上千篇,接口响应时间能飙到两三秒。后来在SQL里加了JOIN优化,又给category和tag字段建了索引,才压到500毫秒以内。这事儿说明书上不会写,全靠你被卡住后自己排查。
别急着找现成模板。GitHub上确实有几个开源项目,比如“Typecho-Hello”和“WeTypecho”,但要么多年没更新,要么依赖的微信基础库版本太老。自己写反而更可控,Typecho的插件机制允许你注册自定义路由,比如addRoute('api/post', '/api/post/:id'),然后返回JSON。小程序端用scroll-view做无限滚动,配合onReachBottom加载更多,体验跟原生App差不多。
最后说点主观的。Typecho小程序这事儿,本质上是给老系统续命。如果你博客日活不到一百,真没必要折腾——微信内置浏览器直接打开PC版页面,用“适老化”模式浏览也凑合。但要是你想练手小程序开发,或者对博客有“随手刷”的需求,那这活儿值得干。毕竟Typecho的代码风格干净,比WordPress那堆臃肿的钩子函数好理解多了。
别指望什么官方小程序。官方连手机端主题都懒得维护,你还指望它出小程序?自己动手,两个周末就能搞定。我甚至把代码开源了,虽然只有几十个star,但至少有人私信我说“照着你的思路跑通了”。这就是意义——不是造轮子,是拆了轮子重新拼个滑板。