很早前就在很多博客网站看到了这个每日一句、随机语录等经典语句功能,其实我是非常想要加上这个功能的,但出于以下的考虑,就一直没开启集成工作:

增加这个功能,就意味着要一直请求一言,这个就可能会影响网站的加载速度及性能了;另外,大家也都能感觉到很多网站都由于各种原因,要么不稳定,要么就干脆弃站了...
在我这主题,找不到满意的位置放置这这句话~(毕竟拙于设计...)

WordPress集成一言(Hitokoto)API经典语句功能-堵文斐个人博客

现在发现,第一点完全是想多了,这个耗不了多少性能,一言 API 的速度还是非常棒的,对加载速度的影响基本可以忽略;另外,一言应该不会这么轻易放弃吧;再退一步讲,就算她放弃了,也还是有很多其他备用 API 的,或者启用张戈给的本地解决方案,实在不行,就去掉这个功能咯,也没啥大不了~

对于第二点,我也是比较纠结的,放在滚动公告栏里或者放在文章末尾,我都觉得不是很得力。直到前阵子偶然在 devoted2 那看到了一个我非常喜欢的方式:评论框里。

现在发现,第一点完全是想多了,这个耗不了多少性能,一言 API 的速度还是非常棒的,对加载速度的影响基本可以忽略;另外,一言应该不会这么轻易放弃吧;再退一步讲,就算她放弃了,也还是有很多其他备用 API 的,或者启用张戈给的本地解决方案,实在不行,就去掉这个功能咯,也没啥大不了~

对于第二点,我也是比较纠结的,放在滚动公告栏里或者放在文章末尾,我都觉得不是很得力。直到前阵子偶然在 devoted2 那看到了一个我非常喜欢的方式:评论框里。

WordPress集成一言(Hitokoto)API经典语句功能-堵文斐个人博客

一言网(Hitokoto.cn)创立于2016年,隶属于萌创 Team,目前网站主要提供一句话服务。动漫也好、小说也好、网络也好,不论在哪里,我们总会看到有那么一两个句子能穿透你的心。我们把这些句子汇聚起来,形成一言网络,以传递更多的感动。如果可以,我们希望我们没有停止服务的那一天。简单来说,一言指的就是一句话,可以是动漫中的台词,也可以是网络上的各种小段子。或是感动,或是开心,有或是单纯的回忆。来到这里,留下你所喜欢的那一句句话,与大家分享,这就是一言存在的目的。

下面介绍我的安装方法:

首先,在主题 functions.php 中加入以下代码:

// WordPress集成一言(Hitokoto)API经典语句功能
function LxtxgetHitokoto(){
    $url = 'https://sslapi.hitokoto.cn/';  //url后缀可通过c字段限定返回语句类型,类型详见下方表格。
    $data = array(
                // 'c'=>'d', // 限定内容类型
                'encode'=>'json'
            );
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // 从证书中检查SSL加密算法是否存在
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 6);
    $response = curl_exec($ch);
    if($error=curl_error($ch)){
        return '欢迎来到堵文斐的个人博客~'; // 如果6s内,一言API调用失败则输出这个默认句子~
    }
    curl_close($ch);
    $array_data = json_decode($response,true);
    $lxtx_content = $array_data['hitokoto'].'----《'.$array_data['from'].'》'; // 输出格式:经典语句----《语句出处》
    return $lxtx_content;
}

// 如果获取不到一言内容,返回301永久重定向,在上述代码中添加curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1); 直接抓取跳转的页面即可解决。

然后,使用方法也非常简单粗暴,在主题文件中想输出语录的地方加入以下输出代码即可,当然,你也可以跟本站一样放在文章的评论框哦~:

<?php echo LxtxgetHitokoto(); ?>

另外,再附上一言API的返回参数:

  • id:本条一言的id,可以链接到 https://hitokoto.cn?id=[id] 查看这个一言的完整信息。
  • hitokoto:一言正文,编码方式 usc2,使用 utf-8。
  • type:类型,跟请求参数相同。a: Anime - 动画;b: Comic – 漫画;c: Game – 游戏;d: Novel – 小说;e: Myself – 原创;f: Internet – 来自网络;g: Other – 其他
  • from:一言的出处。
  • creator:添加者。
  • cearted_at:添加时间。