欢迎光临
我们一直在努力
扫描二维码在手机上浏览
WordPress相关

WordPress集成一言(Hitokoto)API经典语句

如何让你的 wordpress 更显文艺范?其实就是在文章内容后面随机显示一行比较有文艺范的文字,具体效果如下图所示,蓝色字体内容每次刷新都会随机更换一次,显示不同的文字。

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

要实现这样的效果总共有三种方法,选择哪种方法自己决定:

一、LWL12 的一言纯净版

在这里,先介绍一下 LWL12 的这个非常纯净的第三方 API 版本,仅显示一句话内容…,速度给力,使用方法也真的是简单粗暴~直接将下面的代码放在自己主题想加载的位置就可以完事了…

<script type="text/javascript" src="https://api.lwl12.com/hitokoto/main/get?encode=js&charset=utf-8"></script>
<div id="lwlhitokoto"><script>lwlhitokoto()</script></div>

二、自建 API 版本

自建版的好处就是,api 及经典语句内容完全由自己管控;当然,缺点也很明显了,木有一言的语句多~~

  1. 创建 API
    好了,直接开动了,首先,新建一个 index.php 文件,文件内容如下:

    <?php
    /**
    * WordPress集成一言(Hitokoto)API经典语句功能
    */
    // 获取句子文件的绝对路径
    // 如果你介意别人可能会拖走这个文本,可以把文件名自定义一下,或者通过Nginx禁止拉取也行。
    $path = dirname(__FILE__);
    $file = file($path."/hitokoto.txt");
    # 随机读取一行
    $arr = mt_rand( 0, count( $file ) - 1 );
    $content = trim($file[$arr]);
    # 编码判断,用于输出相应的响应头部编码
    if (isset($_GET['charset']) && !emptyempty($_GET['charset'])) {
    $charset = $_GET['charset'];
    if (strcasecmp($charset,"gbk") == 0 ) {
    $content = mb_convert_encoding($content,'gbk', 'utf-8');
    }
    } else {
    $charset = 'utf-8';
    }
    header("Content-Type: text/html; charset=$charset");
    # 格式化判断,输出js或纯文本
    if ($_GET['format'] === 'js') {
    echo "function hitokoto(){document.write('" . $content ."');}";
    } else {
    echo $content;
    }

    然后新建一个名为 hitokoto.txt 的文本文档(在里面每行存入一句经典语句哦~),将 hitokoto.txt 文本文档与上面的 index.php 文件同时放入网站根目录下名为 hitokoto 的文件夹中,当然这里文本文档及文件夹的名称可以更改为其他任意名字,但是要将代码中对应调用部分也做更改。

    现在,浏览器访问 http://你的域名/hitokoto/ 就可以看到输出内容了。

  2. 使用 API

    部署方法和上面那个基本一样:在主题代码中你需要显示语录文字的地方添加上如下代码既可以实现对 hitokoto.txt 中文字语录的调用。

    <script type="text/javascript" src="https://你的域名/hitokoto/?format=js&charset=utf-8"></script>
    <div id="hitokoto"><script>hitokoto()</script></div>

    不过,输出的样式也和上面版本一样可能会比较丑,如果你懂 CSS的话可以自己再美化美化。

三、一言官方 API版

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

/**
* WordPress集成一言(Hitokoto)API经典语句功能
*/
function LxtxgetHitokoto(){
$url = 'https://sslapi.hitokoto.cn/'; // http://api.hitokoto.cn/
$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;
}

使用方法也非常简单粗暴,在主题文件中想输出语录的地方加入以下输出代码即可。

<?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:添加时间。

友情提示:大家可以根据返回参数自行修改上面的 LxtxgetHitokoto()函数中的第24行,随意修改为自己想要的格式哦;另外,本文教程不局限于 WordPress ~~

如果想展示在其他类型的文章页面中,只需要将上面代码放在主题对应的文章模板里即可。比如我的是 single-aduio.php,single-image.php,single-standard.php,single-video.php 分别对应音频模板、图形模板、标准模板和视频模板!具体还要看个人主题。除此之外,我们还可以放在其他任意页面!可自定义!注意代码规范,别乱添加,别让网站崩溃就行!
刚添加好的话,是没有任何美化的,这里可以提供一个 css 参考,只需要将其添加到主题下的 style.css 里即可

#lwlhitokoto {
 background-color: #f0f8ff;
 padding: 10px;
 text-align: center;
 color: #095AD4;
 margin: 5px 0 5px 0;
 border-radius: 2px;
}
历史上的今天
八月
21
    哇哦~~~,历史上的今天没发表过文章哦
未经允许不得转载:灵阳星空 » WordPress集成一言(Hitokoto)API经典语句
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

登录

忘记密码 ?

切换登录

注册