梓悦生活

  • 🍟首页
  • 🍪免费资源
  • 🍓Wordpress
  • 🍋琐碎生活
  • 🍘关于
关注周围的人或事,体验人生历程
  1. 首页
  2. Wordpress
  3. 正文

WordPress热评日志的调用

2012/03/24 3452点热度 0人点赞 0条评论

经常看到有人的博客上面有热门日志,由于WordPress自身并没有文章查看次数的统计,所以热门日志基本就是评论最多的,而不是查看次数最多的。

很多的热门日志都是统计整个博客评论最多的文章,可能很长很长一段时间这个统计都没什么变化,那么我们就希望加个时间段,比如一个月,或者一个星期。

这样的话就是一个比较自由的调用了,WordPress有一点很好,就是资源多,想什么基本都有,虽然不是完全符合自己的想法,但是带来的启示是无穷,一个简单的例子可以引申很多很多实用的例子。

将下面的代码的复制到主题的function.php文件中。

[php]
// 获得热评文章
function simple_get_most_viewed($posts_num=10, $days=30){
    global $wpdb;
    $sql = "SELECT ID , post_title , comment_count
           FROM $wpdb->posts
           WHERE post_type = 'post' AND TO_DAYS(now()) - TO_DAYS(post_date) < $days
           ORDER BY comment_count DESC LIMIT 0 , $posts_num ";
    $posts = $wpdb->get_results($sql);
    $output = "";
    foreach ($posts as $post){
        $output .= "\n<li><a href= \"".get_permalink($post->ID)."\" rel=\"bookmark\" title=\"".$post->post_title." (".$post->comment_count."条评论)\" >". mb_strimwidth($post->post_title,0,32)."</a></li>";
    }
    echo $output;
}[/php]

在主题中调用热评日志就把
[php]<?php simple_get_most_viewed(); ?>[/php]

放到你想放的地方。

由于我是以TAB形式来显示3个日志的,所以为了保持3个样式一致,就得控制标题的长度,然后我把显示评论的条数加到了title里面,鼠标放上去的时候就能看到评论的条数。原来的版本是这样的。

[php]// 获得热评文章
function simple_get_most_viewed($posts_num=10, $days=30){
    global $wpdb;
    $sql = "SELECT `ID` , `post_title` , `comment_count` FROM $wpdb->posts
            WHERE `post_type` = 'post' AND TO_DAYS( now( ) ) - TO_DAYS( `post_date` ) < $days
            ORDER BY `comment_count` DESC LIMIT 0 , $posts_num ";
    $posts = $wpdb->get_results($sql);
    $output = "";
    foreach ($posts as $post){
        $output .= "\n<li><a href= \"".get_permalink($post->ID)."\" rel=\"bookmark\" title=\"".$post->post_title."\" >".$post->post_title."</a> - ".$post->comment_count."个评论</li>";
    }
    echo $output;
}[/php]

使用了mb_strimwidth函数来做了一个字数的切断。mb_strimwidth函数,是一个比较不错的PHP函数,获取与指定的宽度截断字符串。举个例子:

[php]<?php echo mb_strimwidth(get_the_title(), 0, 32,"...") ?>
//  get_the_title() 获取文章标题
//  参数32,标题为32字节,中文的话就是16个字
//  超过32个字节的标题,以"..."[/php]

上面我使用的代码中为了保持样式一致,我没有加”…”。

10就是显示10条评论,30就是30天,这个要看你发表文章的频率了,发的比较勤快的,就把时间调整短一些,发的不怎么勤快的就调整长一些,比较自由。

mb_strimwidth不依赖WordPress,它是PHP的函数,不过好像不是所有的主机都能很好支持这个函数的,那么你还可以用mb_substr和mb_strcut来截取,mb_substr、mb_strcut、mb_strimwidth各有特色。看例子就知道了

mb_substr

[php]<?php echo mb_substr(get_the_title(), 0, 16,"utf-8"); ?>
//  get_the_title() 获取文章标题
//  参数16,标题为16个汉字,个人感觉中英文混合的长度控制的不是很好
//  "utf-8"  同时要对他进行编码定义,不然容易乱码[/php]

mb_strcut

[php]<?php echo mb_strcut(get_the_title(), 0, 32,"utf-8"); ?>
//  get_the_title() 获取文章标题
//  参数32,标题为32字节,同样的,个人感觉中英文混合的长度控制的不是很好
//  "utf-8"  同时要对他进行编码定义,不然容易乱码[/php]

所以还是mb_strimwidth感觉好一些。

文章来源于: WordPress热评日志的调用 | 威言威语

标签: wordpress
最后更新:2014/07/21

Meteor

关注周围的人或事,体验人生历程!

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

最新 热点 随机
最新 热点 随机
[教程]AWS免费EC2注册/使用/添加IPV6/SSH连接/删除实例 使用VestaCP搭建邮局(含DKIM,DMARC教程) [教程]利用宝塔面板邮局管理器搭建Roundcube Webmail自建邮局 [测评]喵云互联绍兴电信NAT套餐1测评 iperf3 网络性能测试 [收藏]13 个免费 PPT 模板网站汇总
[测评]喵云互联绍兴电信NAT套餐1测评[教程]利用宝塔面板邮局管理器搭建Roundcube Webmail自建邮局使用VestaCP搭建邮局(含DKIM,DMARC教程)[教程]AWS免费EC2注册/使用/添加IPV6/SSH连接/删除实例
HOST29免费提供的500M/50G/PHP/MYSQL/CP/绑米空间 恢复Wordpress友情链接功能 alojamientogratis提供的1G/1G/PHP/Mysql/可绑米免费空间 电阻式触摸屏和电容式触摸屏哪个更好? sourceforge无限php/mysql可绑米空间 给你的网站加个CDN加速—incapsula
最近评论
b2b系统 发布于 1 年前(12月29日) 感谢分享
Meteor 发布于 2 年前(10月20日) 哈哈,友链一直都在,后来换了主题后忘记修改显示数量了,现在恢复好了。
弋牧 发布于 2 年前(10月12日) 这里已经看不到我的友连了吗?
彩鸽 发布于 2 年前(10月04日) 写的不错
B2B海外商城系统 发布于 2 年前(09月21日) 感谢分享
标签聚合
Linux技巧 VPS 域名解析 活动 技巧 宝塔 wordpress 虚拟主机
友情链接
  • Anders Norén
  • Appurse
  • CSS参考手册
  • DeeTeam-迪提姆
  • Fatesinger
  • FreeSSL
  • gandi
  • Internetbs
  • LogoMaker
  • Meteor's Blog
  • PM唐杰
  • SSL For Free
  • WPEX-Themes
  • 优品PPT
  • 免费顶级域名
  • 博客大全
  • 印记
  • 弋牧
  • 挖站否
  • 闫宝龙博客

COPYRIGHT © 2023 梓悦生活. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang