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

迷离的夜空,灰黑色的天际悬着一轮金色的孤舟,载着满仓的梦想,驶向云层深处;凉风微微的吹袭着黑夜的素纱,掸掉岁月的风尘;融融的月光静静的流淌,冲断记忆的决堤;零星点点,柔柔的洒在树叶上,泛出浅浅的绿;如华的银色裹住一丝清凉,铺设一地的奢华。

我的博客都比较喜欢安装 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显示指定天数的最热文章内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!

标签: 最热 wp