经常看到有的网站页面会随机的展示很文艺的一句话语录或者随机诗词,瞬间感觉网站逼格上来了,有没有想过给自己的网站也添加随机句子功能呢?今天花了很细的功夫研究了一下,总结了三种方式给网站添加随机语录。
一、一言实现随机句子功能:
1、一言语录官方API版:
首先,在主题 functions.php 中加入以下代码。
/** * WordPress 集成一言(Hitokoto)API 经典语句功能 */ function LxtxgetHitokoto(){ $url = 'https://v1.hitokoto.cn/?encode=json'; // 不限定内容类型 // $url = https://v1.hitokoto.cn/?encode=json&c=d'; // 限定内容类型 $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_CUSTOMREQUEST, 'GET'); 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(); ?>
2、一言语录本地版:
新建Hitokoto文件夹,然后创建一个 index.php 文件,文件内容如下。
<?php /** * WordPress集成一言(Hitokoto)API语句功能 */ // 获取句子文件的绝对路径 $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 的文件夹中,当然这里文本及文件夹的名称可以更改为其他任意名字,但是要将代码中对应调用部分也做更改。
在wordpress主题代码中你需要显示随机句子的地方添加上如下代码既可以实现对 hitokoto.txt 随机语录的调用。
<script type=“text/javascript” src=“https://你的域名/hitokoto/?format=js&charset=utf-8”></script> <div id=“hitokoto”><script>hitokoto()</script></div>
输出的随机语录没有样式会比较难看,我们可以给它添加一个CSS样式:
<style> .hitokoto { background-color: #eee; padding: 10px; text-align: center; color: #095AD4; margin: 5px 0 5px 0; border-radius: 2px; } </style>
注:CSS代码来自楚狂人的分享。
一言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:添加时间。
注:此方法来自龙笑天下的分享。
二、今日诗词随机展示:
调用今日诗词网站的古诗词名句 API 功能实现网页显示随机诗词,今日诗词 API 会根据访客的不同地点、时间、节日、季节、天气、景观、城市进行智能推荐。
1、我们在网页中需要加载诗词的地方,比如文章底部,侧边栏小工具,或网站的公告栏位置,插入以下加载代码即可,就和“网站统计”代码的安装方法一致。
<span id="jinrishici-sentence">正在加载今日诗词....</span> <script src="https://sdk.jinrishici.com/v2/browser/jinrishici.js" charset="utf-8"></script>
2、如果你想要将古诗词放在wordpress评论框里的话,这种效果感觉非常美观,而且不会占用网页空间。
将下面代码放至主题的 functions.php 文件里:
/** * WordPress 集成今日诗词随机诗词 API 功能 */ function dr_show_jinrishici(){ if( is_single() || is_page() ){ echo '<script src="https://sdk.jinrishici.com/v2/browser/jinrishici.js" charset="utf-8"></script>'; echo '<script type="text/javascript">jinrishici.load(function(result) { var id = "comment", c = result.data.content+" ---- "+result.data.origin.dynasty+"·"+result.data.origin.author+"《"+result.data.origin.title+"》"; if (document.getElementById(id)){ document.getElementById(id).placeholder=c; } });</script>'; } } add_action( 'wp_footer', 'dr_show_jinrishici' );
三、PHP代码随机句子展示:
我们在网站根目录新建一个文件夹,然后文件夹内创建一个data.dat文件,其中放入你喜欢的诗词或者句子,每句一行。
然后创建一个api.php文件,放入下面的代码:
//PHP代码添加随机句子 <?php // 存储数据的文件 $filename = 'yiyan/data.dat'; if(!file_exists($filename)) { die($filename . ' 数据文件不存在'); } // 读取整个数据文件 $data = file_get_contents($filename); // 按换行符分割成数组 $data = explode(PHP_EOL, $data); // 随机获取一行索引 $result = $data[array_rand($data)]; // 去除多余的换行符(保险起见) $result = str_replace(array("\r","\n","\r\n"), '', $result); echo $result; ?>
如果想实现类似一言的JS调用功能,可以将代码中的”echo $result;“ 替换为”echo 'document.write("'.htmlspecialchars($result).'");';“
然后,在网页代码中需要显示随机句子的位置添加:
<script src="http://你的网址/api.php"></script>
此方法来自孟坤博客的分享。
以上三种方式都可以给网站添加随机语录功能,让我们的网页更有文艺范,这些方法各有优缺点,有的随机句子必须根据官方API输出,本地版的虽然可以自定义随机语录,但是个人整理的句子量级上又无法与官方相比,所以各有优缺点,大家根据自己的需求选择即可。