前言
在我使用的主题 Sakurairo 中,作者为我们贴心的引入了页尾一言功能,现在市面上确实有很多一言的 API,但是经过考察,我发现这些 API 要不内容是现成的,可自定义程度低,要不需要额外部署,增加维护成本,于是我决定直接做一个 WP 插件来实现一下功能:
- 提供一个接口,随机获取一言
- 在
wp-admin页面就能完成所有的一言管理,包括查看、删除、导入导出 - 提供池缓存和短缓存,保证可用性的同时还可以防刷
- 不受 CDN 影响
于是我实现了这样一个插件:
README
安装
就代码保存到~wordpress/wp-content/plugins/hitokoto-advanced/hitokoto-advanced.php后,回到控制台就可以看到多了一个叫做Hitokoto Manager & API (Advanced)的插件,点击启用就可以看到左侧多了一个一言管理。
管理一言
在新增一言中中标题用于管理时区分,没有其他展示效果也不是在调用 API 时返回,正文是展示主题,来源和作者一般用于展示的可选项,然后语言和类型可用于查询参数。
同时插件还支持通过 JSON 或者 CSV 批量导入,使用 CSV 时,要求首行为hitokoto,from,from_who,type,lang,JSON 使用 JSON 数组,单个JSON格式如下:
{
"hitokoto": "将过去和羁绊全部丢弃,不要吝惜那为了梦想流下的泪水。",
"from": "海贼王",
"from_who": "蒙奇·d·路飞",
"type": "one piece",
"lang": "zh-CN"
}JSON使用 API
插件提供了两种使用方式,分别是https://你的域名/wp-json/hitokoto/v1/text和https://你的域名/wp-json/hitokoto/v1/random,响应示例如下:
// text:
"就算你们把酒或食物丢在我头上,或是你们吐口水在我身上,我都会笑笑当作没事。但是,不管你们有什么样的理由,我都不会饶了伤害我朋友的家伙!"
// random
{
"id": 421,
"hitokoto": "就算你们把酒或食物丢在我头上,或是你们吐口水在我身上,我都会笑笑当作没事。但是,不管你们有什么样的理由,我都不会饶了伤害我朋友的家伙!",
"from": "海贼王",
"from_who": "香克斯",
"type": "one-piece",
"lang": "zh-CN",
"length": 67
}JSON同时还支持两种路径传参的可选参数:lang 和 type ,分别对应语言和类型。
缓存说明
插件提供了 30s 的随机结果缓存和 300s 的ID池缓存。
Comments NOTHING