wordpress不用插件实现评论数和浏览数量

7月/30日


wordpress是非常流行的cms系统,拥有非常多的插件,尽管如此,如何避免少用插件依然是有必要的,因为插件会降低运行效率,切图网qietu.com致力于前端切图开发服务,对于wordpress的研究也是非常深入的。

下面是wordpress不用插件实现评论数和浏览数量的方法。

1、文章评论数

由于对wordpress结构不太了解,一开始有点无从下手。用phpmyadmin浏览数据库之后才发现wp-posts表里本来就有comment_count这一项,于是就非常简单的直接SQL语句解决了。

打开主题文件夹中function.php文件,在合适的地方插入下面一段代码。

function comment_views()
{
global $wpdb;
global $post;
$post_ID = $post->ID;
$numcomms = $wpdb->get_var(“SELECT comment_count FROM $wpdb->posts WHERE ID =$post_ID”);
return $numcomms;
}

只是要注意:

1.wordpress的对数据库及文章的访问操作得使用全局变量$wpdb,$post;

2.get_var为wp自带的获取select返回值的函数,本身后面应该还有两个整形参数的,表示所预计查询出来的结果中的行和列,缺省为0,0,这里查询值唯一,所以没有写。

最后只需要的地方调用该函数就能返回数值了。

2、文章浏览数

浏览数就没那么直接了,现有的数据库没有对点击或刷新操作的计数值,所以只能自己写。

先介绍几个函数:
add_post_meta($post_id, $meta_key, $meta_value,$unique);

这是WordPress 中用来给文章或页面添加自定义字段值的一个函数,其用法与在编写文章时在文章编写界面中利用自定义栏目面板为文章添加自定义字段值的效果是一样的,常见的使用有:文章浏览次数、喜欢按钮、seo插件等。其中 $meta_key为自定义字段的名称; $meta_value为自定义字段的值;$unique为bool型变量,表示如果有重复是否覆盖(true)。

 

get_post_meta($post_id, $key, $single);

和add_post_meta类似,功能是获取指定字段的值,$single为bool型变量,表示是否返回字符串。

 

update_post_meta($post_id, $key, $value);

字面意思,表示获取指定字段的值。

 

因此,我们可以先对指定文章进行postmeta的提取,如果为空,则新建一个名为”views”的postmeta,将值赋为1,如果不为空,则对其进行值的变更(views加1),代码中是否为空直接用update_post_meta的返回值判断。最后将整个函数通过add_action函数加到wp_head()中,确保每次加载页面都会执行(点击文章或者刷新都增加计数)

function record_visitors()
{
if (is_singular())
{
global $post;
$post_ID = $post->ID;
$post_views = (int)get_post_meta($post_ID, ‘views’, true);
if(!update_post_meta($post_ID, ‘views’, ($post_views+1)))
{
add_post_meta($post_ID, ‘views’, 1, true);
}
}
}

add_action(‘wp_head’, ‘record_visitors’);

再写一个调用的函数:

function post_views()
{
global $post;
$post_ID = $post->ID;
$views = (int)get_post_meta($post_ID, ‘views’, true);
return $views;
}

最后在需要的地方调用post_views()函数即可。

切图网始于2007年, 前端外包 服务拓荒者、领航者,提供专业的前端外包服务,微信公众号 qietuwang