WordPress代码实现一言功能教程

一言这个功能经常在一些博客大佬的网站中出现过。有这么一个功能也相当于给自己的网站增添了一些新鲜的内容如果喜欢不妨跟着小编往下看。一言就是一句简单的话,可以是唯美的鸡汤,也可以是唯美的诗句,如果是爱好古诗的用户,一言这个功能估计可以最大化发挥出博主的文采。

此次介绍几个实现一言功能的方法,其中包含一言官方的api调用方法,以及本地搭建一言系统等两种类型的方案。

其中采用一言官方的方法,毕竟一言官方是专业做一言的,所以语句上会丰富很多。但是如果使用本地语句库的话,那每一句话都是由我们手动添加,自然也就相对可控一些,尤其是专注某一些领域的大佬们,尤其是做文学类网站的大佬,这个功能可以说是一个不错的亮点。

此次介绍的方法相对而言使用一言的接口更加简单一些,小编这里使用的是小工具实现,大家也可以放到head中或者是footer中展示。

方法1;使用一言官方接口实现小工具拥有一言功能

这个方法是此次分享的内容中最简单的一个,将代码放到小工具当中即可。大多数的主题都支持HTML小工具将以下代码粘贴到HTML小工具当中即可。

//代码来自:https://wordpressworlds.com/yi_yan_function.html
<p id="hitokoto">:D 获取中...</p>
<script>
fetch('https://v1.hitokoto.cn')
.then(response => response.json())
.then(data => {
const hitokoto = document.getElementById('hitokoto')
hitokoto.innerText = data.hitokoto
})
.catch(console.error)
</script>

方法2;建立本地一言库实现一言调用

方法2使用起来也比较的简单,直接将以下代码粘贴到WordPress主题的functions.php文件当中即可,其中每一行的内容为一句话,这里大家可以自定义中文内容。再将后面的调用代码插入到需要展现的位置即可。

// eot里面的就是随机显示的格言,可以自定义一句一行即可。
//代码来自:https://wordpressworlds.com/yi_yan_function.html
$quotes = <<< eot
生如蝼蚁,当有鸿鹄之志。命虽薄纸,应有不屈之心!
世界的可怕之处在于,有很多不知死活的浑人,还有很多不顾他人的混蛋。
欲要成功必有其梦,欲戴王冠,必承其重!
我始终记住:青春是美丽的东西,而且对我来说它永远是鼓舞的源泉。——巴金
你做的事情最好是你晚年时愿意回忆的事。 ——奥理略
我之所谓生存,并不是苟活;所谓温饱,并不是奢侈;所谓发展,也不是放纵。 ——鲁迅
年青人求知欲很旺,而忍耐性不足。 ——郭沫若
知其雄,守其雌;知其白,守其黑;知其荣,守其辱。——老子
君子惠而不费,劳而不怨,欲而不贪,泰而不骄,威而不猛。——尧曰
仁者不忧,智者不惑,勇者不惧。——宪问
居处恭、执事敬、与人忠。——子路
君子食无求饱,居无求安,敏于事而慎于言。——学而
藏焉,修焉,息焉,游焉。——礼记
知人者智,自知者明。胜人者有力,自胜者强。知足者富。强行者有志。
信言不美。美言不信。善者不辩。辩者不善。知者不博。博者不知。
一个人的价值, 在于他贡献了什么, 而不在于他获得了什么。——爱因斯坦
大多数人在2030岁就已经过完自己的一生。一过了这个年龄段, 他们就变成自己的影子, 以后的生命只是在不断重复自己。——《约翰.克里斯朵夫》罗曼.罗兰
活着, 如同生命最后一天般活着;学习, 如同永远活着般学习。——圣雄甘地 (印度国父)
在这个世界上, 人所处的绝境, 在很多情况下, 都不是生存的绝境, 而是精神的绝境!
人生中最大的两个财富是: 你的才华和你的时间。才华越来越多而时间越来越少。我们的一生就是用时间来换取才华。
Stay hungry. Stay foolish.——史蒂夫.乔布斯
这辈子没法做太多的事情, 所以每一件都要做到精彩绝伦!——史蒂夫.乔布斯
我每天都自问: '如果今天是我生命的最后一天, 我还会做今天打算做的事情吗?'——史蒂夫.乔布斯
你若不想做, 总能找到借口; 你若想做, 总会找到方法——阿拉伯谚语
宁鸣而死 不默而生——范仲淹
获得信任的技巧就是避免使用任何技巧
判断一个人的人品, 不是看他好起来做什么好事, 而是看他坏起来【不做】什么坏事。
不要去欺骗别人 -- 因为你能骗到的人, 都是相信你的人。
授人以鱼不如授人以渔!授人以鱼只救一时之急, 授人以渔则可解一生之需。
兴趣是最好的老师——爱因斯坦
知识上的投资总能得到最好的回报。——本杰明.富兰克林
读书是在别人思想的帮助下建立自己的思想——尼古拉.鲁巴金
想象力比知识更重要! 因为知识是有限的, 而想象力概括着世界的一切, 推动着进步, 并且是知识进化的源泉。——爱因斯坦
你要按你所想的去生活; 否则, 你迟早会按你所生活的去想!
大多数人宁愿死去, 也不愿思考。 -- 事实上他们也确实到死都没有思考。——罗素
国家为人而立, 而非人为国家而活。——爱因斯坦
你可以暂时地蒙骗所有人, 也可以永久地蒙骗部分人, 但不可能永久地蒙骗所有人。——林肯
世上最难的两件事: 把自己的思想装进别人的脑袋, 把别人的钞票装进自己的口袋 -- XXX都做到了!
以铜为镜, 可以正衣冠; 以史为镜, 可以知兴替; 以人为镜, 可以明得失。——李世民 (唐太宗)
简单即是美 - Simple is beautiful
控制风险的最好办法是深入思考, 而不是投资组合。——巴菲特
价值投资不能保证我们盈利, 但价值投资给我们提供了通向成功的唯一机会。——巴菲特
我从事投资时, 会观察一家公司的全貌; 而大多数投资人只盯着它的股价。——巴菲特
退潮时, 便可知道谁在裸泳。——巴菲特
投资的风险来自于: 你不知道你在做什么 :)——巴菲特
以用户为中心, 其它一切纷至沓来!——Google 信条
只有偏执狂才能生存!——Andy Grove (英特尔创始人之一, 前任CEO)
领袖和跟风者的区别就在于创新!——史蒂夫.乔布斯
我们没有不懂技术的管理人员 -- 因为寻求技术和管理的平衡毫不费力!——比尔.盖茨
伟大的车工值得给他几倍于普通车工的薪水。但一个伟大的程序员, 其价值相当于普通程序员的1万倍!——比尔.盖茨
唯一不变的是变化本身!
There's something good in this world. And it's worth fighting for ……总有一些事物是美好的,它值得我们为之而战斗。
一个人最好记性不要太好,因为回忆越多,幸福感越少。
活得累是因为心里装了多余的东西,跟吃饱了撑的是一个道理。
早起的鸟儿有虫吃;早起的虫儿被鸟吃。
如果你手里有一把锤子,所有东西看上去都像钉子。
Done is better than perfect.比完美更重要的是完成。
如果你看对了生意模式,你就会赚很多钱。
真正决定一个人成就的,不是天分,也不是运气,而是严格的自律和高强度的付出。
eot;

// Here we split it into lines
$quotes = explode("\n", $quotes);
// 随机选择一行输出
$show_quotes = wptexturize( $quotes[ mt_rand(0, count($quotes)-1 ) ] );

// 在想要显示的地方加上 if(function_exists('show_quotes')) show_quotes(); 即可
function show_quotes() {
	global $show_quotes;
	echo "<div id=\"random_quotes\">".$show_quotes."</div>";
}

而后再将以下代码插入到指定位置即可展示我们自己建立的一言库中的一句话。

<?php if(function_exists('show_quotes')) show_quotes(); ?>

方法3;通过自建api实现更强大的一言调用方法

这个方法,相对来说麻烦一些,其中涉及到一些文件的调用,并且由于小编在本地测试,可能不一定会适合大多数用户。不过这个方法也是别的大佬分享而来的,相信兼容性还是不错的。由于使用的是文件调用,所以涉及到的代码量自然相对也会少一些,并且可自定义性也会更强大许多的。

步骤1:在wordpress的根目录中建立一个“hitokoto”文件夹

步骤2:将以下代码新建一个index.php文件中,并将该文件放入“hitokoto”文件夹

<?php
//自建一言库代码-代码来源:https://wordpressworlds.com/yi_yan_function.html
// 获取句子文件的绝对路径
// 如果你介意别人可能会拖走这个文本,可以把文件名自定义一下,或者通过 Nginx 禁止拉取也行。
$path = dirname(__FILE__);
$file = file($path."/hitokoto.txt");
# 随机读取一行
$arr = mt_rand( 0, count( $file ) - 1 );
$content = trim($file[$arr]);
# 编码判断,用于输出相应的响应头部编码
if (isset($_GET['charset']) && !empty($_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;
}

步骤3:在“hitokoto”文件夹中建立一个“hitokoto.txt”文本文件,并在其中写入一句话作为基础一言库。

而这个文本内容,以后都是一言调用的文本,所以可以根据自己意愿随时添加更多的内容。并且不用担心修改代码的烦恼。

当你完成上述的三个步骤后,即可“http://你的域名/hitokoto/”访问,就可以看到效果了。

步骤4:在需要展示一言的位置插入代码

这里小编还是推荐在小工具中使用代码,因为很多主题的HTML小工具都已经做好了外观的匹配,所以即便是插入一言的功能,仍旧不会影响网站的美观,这样就不需要自己写css样式了。如果您是需要在其他位置展示一言的话,估计是需要美化一下啦。

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

方法4;补充一个评论框调用的方法

刚在找相关代码的时候,在一些博主大佬的文章中,看到一个可以直接展示在评论框的方法。使用起来比较简单,这里小编就无情的盗用过来分享。

将以下代码粘贴到网站需要重复调用的模板中即可,比如head.php或者是footer.php当中即可。

如果你的评论框id不是comment,则需要修改,首先右键评论框-审查元素-查看id或者class,选其一即可,之后把获取的id或者class替换到上述代码中的#conment。该js需要引入jquery库,如果未能正常显示请注意是否成功引入jquery库或者是否成功匹配评论框id或者class值。

//代码来自:https://wordpressworlds.com/yi_yan_function.html
<script>
$.getJSON("https://api.yum6.cn/yan.php?format=json",function(data){ 
$("#comment").text(data.text);
});
$(function(){
$("#comment").click(function() {
$(this).select();
})
})
</script>

以上的几个实现网站拥有一言功能的方法比较的简单,既能够实现本地自定义一言库的方法,也还有可以借助一言库官方的方法。

孰优孰略大家各自品尝,小编这里所使用到的环境为春哥的B2主题,可能不一定适用所有的wordpress主题,如果你恰好遇到问题欢迎在评论区留言。

人已赞赏
功能扩展代码

代码实现WordPress文章标签自动添加“nofollow””属性

2020-12-26 14:45:40

功能扩展代码

代码实现WordPress所有连接新窗口打开减少网页跳出率

2021-1-12 14:59:11

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索