腾讯云服务器优惠活动华纳云香港服务器

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

WordPress主题推荐

我的博客都比较喜欢安装 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显示指定天数的最热文章-第1张-boke112百科(boke112.com)
1、打开 wp-postviews.php 文件,大概在 286 行找到

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

函数,在

global $wpdb;

下面添加两行代码:

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

2、大概在 304 行找到

$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");

把里面的

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

修改成

post_date BETWEEN '$daysago' AND '$today'

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

本文地址:https://boke112.com/post/149.html

赞 (0) 打赏
版权声明:本文为原创文章,版权归 boke112百科 所有,欢迎分享本文,转载请保留出处!发布此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请联系我们,确认后马上更正或删除,谢谢!
wu