用wp-postviews显示指定天数的最热文章

 2015-01-02 13:25:19  1,375 人阅读  2 条评论

我的博客都比较喜欢安装wp-postviews插件来显示文章的浏览数和最热文章,但是有一点不怎么满意的就是它所显示的最热文章是包括所有文章,在最热文章排行榜总是那10篇文章,看多了我都腻了,所以就想能不能显示指定天数的最热文章?

经过网上搜索,发现还是有挺多代码能够实现最热文章,不过由于我已经安装了wp-postviews插件,所以就想着能不能直接修改wp-postviews插件里的文件来实现显示指定天数的最热文章?

想到就做,把wp-postviews插件的文件全部都下载下来,发现只有postviews-cache.js、postviews-options.php、uninstall.php和wp-postviews.php四个文件有用,经阅读,发现其实只需要修改wp-postviews.php文件即可实现显示指定天数的最热文章。

我的想法一般都是设置好就懒得改来改去的,所以就不想折腾以达到在后台设置天数的功能,我直接在wp-postviews.php文件里修改即可,如只显示90天内的文章中最热的文章,只需要修改一点点代码即可。

具体步骤如下:
用wp-postviews显示指定天数的最热文章|boke112导航 1、打开wp-postviews.php文件,大概在286行找到

  1. get_most_viewed($mode = ''$limit = 10, $chars = 0, $display = true)

函数,在

  1. global $wpdb;

下面添加两行代码:

  1. $today = date("Y-m-d H:i:s"); //获取今天日期时间
  2. $daysago = date"Y-m-d H:i:s"strtotime($today) - (90* 24 * 60 * 60) ); //Today - $days

2、大概在304行找到

  1. $most_viewed = $wpdb->get_results("SELECT DISTINCT $wpdb->posts.*, (meta_value+0) AS views FROM $wpdb->posts LEFT JOIN $wpdb->postmeta ON $wpdb->postmeta.post_id = $wpdb->posts.ID WHERE post_date < '".current_time('mysql')."' AND $where AND post_status = 'publish' AND meta_key = 'views' AND post_password = '' ORDER BY views DESC LIMIT $limit");

把里面的

  1. post_date < '".current_time('mysql')."'

修改成

  1. post_date BETWEEN '$daysago' AND '$today'

3、保存wp-postviews.php文件,并把该文件上传到主机空间的wp-postviews文件夹里覆盖原文件即可实现显示指定90天的最热文章。如果想显示30天只需把代码中的90改为30即可。

历史上的今天:

文章标签: ,  
本文地址:https://boke112.com/149.html
版权声明:本文为原创文章,版权归  所有,欢迎分享本文,转载请保留出处!
©boke112导航,本站推荐使用:阿里云腾讯云 的服务器等云产品,免备案主机建议使用:老薛主机

相关文章 分类热门分类热评最新问答

 发表评论

中国赞表情摊手表情吃瓜表情笑哭表情偷笑表情衰表情汗表情思考表情费解表情抓狂表情晕表情流泪表情疑问表情嘻嘻表情吃惊表情鼓掌表情

  1. 热词网
    热词网 @回复

    这个东西不错