又是一篇旧站文章,之前用来实现Google的富媒体搜索结果(结构化标记),即通过这种方式可以实现谷歌搜索结果出现文章评分。文中,通过Digg插件的一些魔改操作,实现了Typecho的ajax评分功能。
以前用PostRating这款插件实现过评分功能,然后我为了实现一个其他功能,貌似是图片延迟加载功能,引入了一个jquery库,与PostRating自带的冲突,甚至还有一些其他问题。昨天,恰好看到一款顶踩插件Digg,脑回路运转,发现可以实现评分。然后,就尝试改写了部分代码。废话到此为止,下面进入正文。
Digg使用方法
下载什么的,不说了,网上很多下载渠道的。主要说下使用方法,上传插件到网站plugins目录,该插件命名为Digg。后台启用插件,修改css及javascript,主要是注意下https问题。然后,将淡黄色提示框里的内容,填写到插件目录下的digg.js里,如下图所示。
然后,在主题目录post.php适当位置插入如下代码
<?php Digg_Plugin::output(); ?>
这时,顶踩插件就可以用了。
Digg魔改
插件设置,项目存储id修改为1|2|3|4|5,项目中文输出修改为1分|2分|3分|4分|5分。然后,就是修改插件的输出函数部分了。打开digg插件目录下的Plugin.php文件,找到大约第157行代码,修改为如下代码。如果找不到代码具体位置,请搜索<?php Digg_Plugin::output(); ?>,即可定位。关于魔改的部分已用//标记
/* 用法1 <?php Digg_Plugin::output(); ?> 按插件自定义格式输出 也可自己修改输出格式*/
if (!$return) {
$sum=0; //新增分数求和变量
$num=0; //新增评分个数变量
echo "<div id=\"digg\" class=\"clearfix\"><font style=\"font-size:16px;color:darkcyan;\">给文章评分:</font>"; //修改样式
foreach ($items as $k => $v) {
echo '<a href="javascript:digg(\'' . $v . '\',\'' . $cid . '\');" id="digg-' .$v. '">';
echo $result['items'][$v];
echo '(<span id="' . 'digg-' . $v . '-num">' . (isset($result[0][$v]) ? $result[0][$v]['count'] : 0 ) . '</span>)</a>';
$sum = $sum+$v*$result[0][$v]['count']; //计算总评分
$num=$num+$result[0][$v]['count']; //获取评分个数
}
$ave=$sum/$num; //计算平均分
$ave=round($ave,2); //保留两位有效数字
echo "</br><i class=\"fa fa-star\"></i> <b>$num</b> 票; 总得分 <b>$sum</b>; 平均分 <b>$ave</b> <i class=\"fa fa-star\"></i>"; //新增分数统计输出
echo '</div>';
return;
}
效果
有人会问,这个评分有啥用,除了装逼。实际上,经常关注谷歌搜索引擎的应该知道,有一个东西叫结构化标记,里面可以为你的每篇文章标记结构,内容毕竟丰富,其中就有一项评分。搞好以后,等谷歌抓取更新,就可以提交结构化标记,谷歌自动读取你每篇文章的评分,并在搜索结果里显示。
话说,我的文章评分由于之前的插件失效,被我删了结构化数据,搜索引擎已经没评分了,这里随便找个链接,展示下效果。
关于Wordpress添加评分功能的文章,可以点击查看古哥前几天写的:一款给WordPress添加评分功能的插件
旧站文章,作者:古哥,如若转载,请注明出处:https://iymark.com/articles/495.html