(本人才疏学浅,如有纰漏,还请大佬指正orz。
官方API
使用官方api接口调用一言功能非常简单,可以直接查看官方api接口帮助文档。
例如,如果我想在网站页脚添加一言,仅需要在页脚初添加如下代码:
<p id="hitokoto">:D 获取中...</p>
<script src="https://v1.hitokoto.cn/?encode=js&select=%23hitokoto" defer></script>
一下是两段通过api获取的json示例
/* example 1 */
{
"id": 229,
"hitokoto": "男人变态有什么错!",
"type": "a",
"from": "寒蝉鸣泣之时",
"from_who": null,
"creator": "哀音",
"creator_uid": 0,
"reviewer": 0,
"uuid": "b3620d38-115d-49ad-82ab-406e1c862c96",
"created_at": "1468605914"
}
/* example 2 */
{
"id": 4176,
"hitokoto": "你知道吗?从人眼的高度能看到的地平线,是离自身的距离大约是4公里。",
"type": "a",
"from": "青春猪头少年不会梦到兔女郎学姐",
"from_who": null,
"creator": "Amadeus",
"creator_uid": 2230,
"reviewer": 0,
"uuid": "0400f3cb-49b6-481b-969f-fdfda316e32e",
"created_at": "1545533360"
}
上段语句的功能为:
- 未加载完成语句时显示「:D 获取中…」
- 获取到一言是时显示对应的一言语句,如「你之间跃动的电光,是我此生不变的信仰。」
但这并没有可定制性。比如,我想在一言后加上出处,或者是一言类型,该怎么办呢?
自建函数
众所周知,WordPress是一个PHP程序。(PHP是世界上最好的语言!)
那么, 对于用PHP程序开发的网站,可以通过API接口读取JSON数据来达到定制化显示的功能。
这是一段PHP通过API接口读取JSON数据的实例代码。需要注意的是,如果博客不是Wordpress程序,可以使用使用file_get_contents()函数替换wp_remote_retrieve_body( wp_remote_get()函数)
(此段代码和代码介绍来自于学网站论坛)
<?php
content = wp_remote_retrieve_body( wp_remote_get('http://API接口地址') );content_obj = json_decode(content); #JSON内容转换为PHP对象timer = content_obj->time;number = content_obj->number;datar = content_obj->data;
echotimer.'|'.number.'|'.datar.'||';
?>
代码介绍:
- 先是通过WORDPRESS程序自带的wp_remote_retrieve_body函数来获取JSON的内容;
- 再通过json_decode将JSON内容转换为PHP对象;
- 最后再输出各个PHP对象里的参数值。
针对wordpress,可以考虑将这段代码插入到「function.php」中,定义函数Hitokoto(),函数返回格式为「[hitokoto]——《[from]》」;最后,在需要输出一言的地方引用函数再输出就可以了。
最终代码
function Hitokoto(){
content = wp_remote_retrieve_body( wp_remote_get('https://v1.hitokoto.cn/?c=a') );content_obj = json_decode(content); #JSON内容转换为PHP对象hitokoto = content_obj->hitokoto;from = content_obj->from;
returnhitokoto.' ------《'.$from.'》';
}
<?php echo Hitokoto(); ?>
Comments | NOTHING