前言
因疫情影响,已经2个多月没有更新博客了,如果现在还不赶快出来冒个泡,怕大家误认为我走丢了(因为从来没有这么长时间断更过)。
目前我使用的Begin知更鸟主题,文章阅读次数统计是依赖于PostViews插件,大家都知道WordPress的诟病就是插件越多越慢(其实在我看来并不是插件越多越慢,而是查询、事件钩子越多就越慢),所以自己就写了一个纯代码版本,实现了阅读统计和部分查询函数。
当然,可能你想说这些早就有人分享过了;是的,在我写之前我肯定也会上网看看已存的,发现有几点不如意,例如添加meta的钩子是放在wp_head
的、查询阅读数量必须要传递post_id
等。
正文
我直接贴出代码,每个函数的功能均在注释中已经标识出:
/** * 判断阅读数量是否需要增加并进行操作 * 转载请注明来自:https://licoy.cn/3462.html */ function the_views_add($post_ID,$count,$key){ if (is_single() || is_page()) { if ($count == '') { add_post_meta($post_ID, $key, '0'); } else { update_post_meta($post_ID, $key, $count + 1); $count++; } } return $count; } //获取当前的阅读数量与自增 function the_views ($post_id=null,$echo=true) { global $post; if($post_id==null){ $post_id = $post->ID; } $key = 'views'; $count = get_post_meta($post_id, $key, true); if ($count == '') { $count = 0; } $count = the_views_add($post_id, $count, $key); $count = number_format_i18n($count); if(!$echo){ return $count; } echo $count; } //设置文章发布的时候进行字段添加 function set_views ($post_ID) { $key = 'views'; $count = get_post_meta($post_ID, $key, true); if ($count == '') { add_post_meta($post_ID, $key, '0'); } } add_action('publish_post', 'set_views');
这里再分享一个查询函数,因为是自定义的所以就没有插件的附带函数支持,这个函数是查询N天内阅读数量最多的文章:
/** * 转载请注明来自:https://licoy.cn/3462.html * 获取查看最多的文章 * @param $days N天内 * @param $nums 数量 * @return array|object|null */ function get_views_most_post($days, $nums){ global $wpdb; $sql = "select posts.*, meta.meta_value as views from {$wpdb->posts} as posts INNER JOIN (select post_id,(meta_value+0) as meta_value from {$wpdb->postmeta} where meta_key='views' order by (meta_value+0) DESC) as meta on meta.post_id = posts.ID where posts.post_type = 'post' AND posts.post_status = 'publish' AND TO_DAYS(now()) - TO_DAYS(posts.post_date) < {$days} ORDER BY meta.meta_value DESC limit 0, {$nums}"; return $wpdb->get_results($sql); }
后记
至于我为什么会分享这些代码出来,因为在过年期间博主写了一套WordPress主题,目前整体框架和内容都均已完成,现在处于优化和测试期,后续上线会专门发文告知,有兴趣的小伙伴欢迎多多关注,感谢你的支持!
其实我就想知道一下,你的这代码高亮很漂亮,用的插件,还是主题集成 ?
@八点半博客 主题集成的
大白天看你的站,真是黑不溜秋的啊! 感觉有点不适应!
@八点半博客 可以点击右上角调成白天模式
@憧憬Licoy 是的,很棒的主题,我已经很骄傲的使用了这个主题!感谢
学习了,评论做的不错
文章非常好超喜欢
好文章,支持一下!!
学习了,受教受教
期待新主题
@PacificRack 会很快来临,感谢支持!
文章不错非常喜欢,支持
感谢分享
@绿软吧(lvr8.com)
SpringCloud使用Zuul出现“Forwarding error”错误解决方法
Chatroulette-全世界随机视频聊天网站
IntelliJ IDEA下将JavaWeb打包成war包并发布到tomcat步骤说明
LiRecord留言板系统V2.0正式版发布
SpringBoot打包成war包并放置在tomcat运行
SpringBoot+Shiro整合进行登录验证与权限控制
多风格自适应WordPress主题Puock正式开源!
非大众版WordPress纯代码实现阅读量统计
面包多WordPress插件 – 把你的文章变成付费版
git reset —hard后暂存区代码跑哪儿去了?