(本人才疏学浅,如有纰漏,还请大佬指正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;
    echo $timer.'|'.$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;
    return $hitokoto.' ------《'.$from.'》';
}

<?php echo Hitokoto(); ?>

风吟如语 樱辉坂道