梓悦生活

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

WordPress热评日志的调用

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

最新 热点 随机
最新 热点 随机
Debian源更新报错解决方法 Linux调整文件系统大小的命令:resize2fs 哪吒监控面板搭建教程 将Azure机器配置的静态IP修改为动态IP地址 通用嵌入式DDNS脚本UE-DDNS 利用DNSPod实现动态域名解析DDNS
将Azure机器配置的静态IP修改为动态IP地址Vultr 推出免费云主机,用于鼓励全球创新Cloudflare WARP 一键安装脚本 使用教程HostPanel开源免费主机管理面板谷歌将替换Chrome 117版本中的挂锁图标WARP使用教程:入门篇
安卓手机铃声设置教程 MyNodeQuery一款简洁好用的云监控探针 定期清理wordpress数据库wp-commentmeta表文件 Wordpress 无插件实现分页导航 1GB/50GB/CP/servelayer.net Zoov.co提供3个类型的免费空间 高达600GB空间 Plesk面板
最近评论
B2B海外商城系统 发布于 18 小时前(09月21日) 感谢分享
上海网站建设 发布于 2 个月前(07月11日) 感谢分享
Unye Koltuk Yıkama 发布于 3 个月前(07月05日) Ünye Koltuk Yıkama. Koltuk temizliğinde kumaş ve d...
Meteor 发布于 4 个月前(06月01日) 你的mysql版本看一下,我记得之前开发大佬在群里说过这个问题,5.6版本还是5.7版本来着。 我...
ldsj007 发布于 4 个月前(05月25日) 老大,数据库连不上,是不是最新版必须用docker数据库了?
标签聚合
活动 wordpress VPS Linux技巧 Linux 虚拟主机 技巧 域名解析
友情链接
  • Anders Norén
  • Appurse
  • CSS参考手册
  • DeeTeam-迪提姆
  • Fatesinger
  • FreeSSL
  • gandi
  • Internetbs
  • Kevan's Blog
  • LogoMaker

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

Theme Kratos Made By Seaton Jiang