梓悦生活

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

WordPress热评日志的调用

2012/03/24 5092点热度 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
取消回复

最新 热点 随机
最新 热点 随机
哪吒探针V0版本控制面板的安装和windows安装V0.20.5的agent方法 Realm转发脚本:一键安装、规则启停、定时备份、FTP/SFTP 备份、Web面板 Realm 一键转发脚本 [测评]喵云绍兴BGP-NAT云主机测评 docker容器部分命令收藏 BillionMail:一个开源的邮件服务器
docker容器部分命令收藏[测评]喵云绍兴BGP-NAT云主机测评Realm 一键转发脚本Realm转发脚本:一键安装、规则启停、定时备份、FTP/SFTP 备份、Web面板哪吒探针V0版本控制面板的安装和windows安装V0.20.5的agent方法
强制卸载阿里云自带程序教程 如何在Win11/10上启用或禁用Windows Installer服务 1GB/10GB/CP/hostyme.com 安装wordpress之后要做的事 db4free.net免费MySQL数据库解决免费空间少数据库问题 PayPal更改汇率结算
最近评论
过客 发布于 10 个月前(11月20日) SSL证书掉了
b2b系统 发布于 3 年前(12月29日) 感谢分享
Meteor 发布于 3 年前(10月20日) 哈哈,友链一直都在,后来换了主题后忘记修改显示数量了,现在恢复好了。
弋牧 发布于 3 年前(10月12日) 这里已经看不到我的友连了吗?
彩鸽 发布于 3 年前(10月04日) 写的不错
标签聚合
wordpress 活动 VPS Linux技巧 域名解析 Linux 技巧 虚拟主机
友情链接
  • 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