下面由wordpress教程栏目给大家介绍wordpress不用插件实现文章阅读数的方法,希望对需要的朋友有所帮助!
wordpress不用插件实现文章阅读数一、想法一开始想到应该有什么插件能实现,搜索了下,排第一的是文章浏览量计数器(post views counter)。
在安装该插件之前,想了下,能否自己实现?毕竟动手折腾下,是会有收获的。
在搜索之前,我想到的是在wp_post表加个字段,然后在文章打开的时候,把数据存起来,这样就能持久保存文章阅读数了。
但wordpress使用php写的,mysql加字段,对前端的我来说,还是比较耗时间的。比如用php怎么操作数据库,怎么用php加字段?估计最少半天甚至一天的时间,才能搞完。
有没有更简单的办法?
因为之前折腾过wordpress数据库,知道大概有哪些表。所以突然想到有个wp_postmeta表。从字面看,应该是可以加个字段或者能从该表入手的。
meta_id是id,post_id是文章id,meta_key和meta_value是文章的键值对信息。
二、wordpress提供的方法那怎么操作该张表?
wordpress提供了几个方法:
add_post_meta($post_id, $meta_key, $meta_value, $unique);get_post_meta($post_id, $meta_key, $single);update_post_meta($post_id, $meta_key, $meta_value, $prev_value);delete_post_meta($post_id, $meta_key, $meta_value);
三、具体代码实现那怎么用呢?
首先在function.php文件中添加add和get的函数封装,然后在template-parts/content-single.php文件中进行调用。
// function.phpfunction addpostviews($postid) { $key = 'post_views'; $value = get_post_meta($postid, $key, true); if($value == ''){ $value = 0; delete_post_meta($postid, $key); add_post_meta($postid, $key, $value); }else{ $value++; update_post_meta($postid, $key, $value); }}function getpostviews($postid){ $key = 'post_views'; $value = get_post_meta($postid, $key, true); if($value == ''){ $value = 0; delete_post_meta($postid, $key); add_post_meta($postid, $key, $value); return $value; } return $value;}// template-parts/content-single.php<p>阅读:<?php echo getpostviews(get_the_id()); ?></p><?php addpostviews(get_the_id()); ?>
以上就是wordpress如何不用插件实现文章阅读数的详细内容。
