我的博客都比较喜欢安装 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 天内的文章中最热的文章,只需要修改一点点代码即可。
具体步骤如下: 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 即可。
到此这篇关于用wp-postviews显示指定天数的最热文章就介绍到这了。青春不是年华,而是心境;青春不是桃面,丹唇,柔膝,而是深沉的意志,恢宏的理想,炽热的感情;青春是生命的源泉在不息的涌流更多相关用wp-postviews显示指定天数的最热文章内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!