纯代码实现WordPress文章点击浏览次数
现在通过 WordPress 系统建站已经非常普遍,但是如果想在网站文章上显示每篇文章的浏览数量,大部分人会想…
现在通过 WordPress 系统建站已经非常普遍,但是如果想在网站文章上显示每篇文章的浏览数量,大部分人会想到使用 wordpress 浏览量插件 WP-PostViews,它可以准确有统计并显示文章总共的浏览量。我们知道 wordpress 插件的好处在于使用方便简单,当然缺点在于会拖累我们网站打开速度。那么我们今天分享纯代码实现 WordPress 文章点击浏览次数,这个功能非常实用相信很多博客更喜欢这种方式(当然你也可以使用这个插件来实现同样的功能):
方法一
实现 wordpress 文章浏览次数很简单,将下面代码加入到 functiuons.php 中:
-
/*实现文章浏览次数*/
-
function getPostViews($postID) {
-
$count_key = "post_views_count";
-
$count = get_post_meta ( $postID, $count_key, true );
-
if ($count == "") {
-
delete_post_meta ( $postID, $count_key );
-
add_post_meta ( $postID, $count_key, "0" );
-
return "0 View";
-
}
-
return $count . " Views";
-
}
-
function setPostViews($postID) {
-
$count_key = "post_views_count";
-
$count = get_post_meta ( $postID, $count_key, true );
-
if ($count == "") {
-
$count = 0;
-
delete_post_meta ( $postID, $count_key );
-
add_post_meta ( $postID, $count_key, "0" );
-
} else {
-
$count ++;
-
update_post_meta ( $postID, $count_key, $count );
-
}
-
}
将如下代码插入 single.php 文件中要显示浏览次数的位置:
-
<?php setPostViews(get_the_ID()); ?>
-
<?php echo getPostViews(get_the_ID()); ?>
需要在哪个页面显示文章的浏览次数,就在相应的模板文件中加入:
方法二
在 wordpress 主题函数模板 functiuons.php 中加入:
-
//文章阅读次数统计与调用
-
function record_visitors(){
-
if (is_singular()){
-
global $post;
-
$post_ID = $post->ID;
-
if($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($before = '(', $after = ')', $echo = 1)
-
{
-
global $post;
-
$post_ID = $post->ID;
-
$views = (int)get_post_meta($post_ID,'views', true);
-
if ($echo) echo $before, number_format($views), $after;
-
else return $views;
-
}
在模板需要调用的地方加入函数即可:
-
<?php post_views('', ''); ?>
方法三
首先在网站后台的 wordpress 模板函数 functions.php 文件中加入以下的代码:
-
/*文章浏览量*/
-
function record_visitors()
-
{
-
if (is_singular())
-
{
-
global $post;
-
$post_ID = $post->ID;
-
if($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');
-
/// 函数名称:post_views
-
/// 函数作用:取得文章的阅读次数
-
function post_views($before = '(点击 ', $after = ' 次)', $echo = 1)
-
{
-
global $post;
-
$post_ID = $post->ID;
-
$views = (int)get_post_meta($post_ID, 'views', true);
-
if ($echo) echo $before, number_format($views), $after;
-
else return $views;
-
}
然后需要显示浏览量的地方,包括首页,分类页,文章页都可以使用,添加浏览量调用代码:
-
<?php post_views(' ', ''); ?>
注意头部模板中,添加 WP HOOK 函数标签,放在标签上面:
-
<?php wp_head();?>
悠然自学提供的简化版(如果一个页面多次调用,就需要设置一次 session 或者 cookies 来防止多次增加)
-
function youran_get_views($post_id = null, $num = 1)
-
{
-
//如果没有传输文章ID
-
if (!$post_id) {
-
//获取当前循环中的文章ID,文章页直接获取当前文章ID
-
global $post;
-
$post_id = $post->ID;
-
}
-
//得到当前文章的浏览量,如果没有就等于1
-
$views = get_post_meta($post_id, 'views', true) ?: 1;
-
//如果有文章,并且是在文章内容页,或者页面内容页
-
if ($post_id && (is_single() || is_page())) {
-
//更新文章浏览量
-
update_post_meta($post_id, 'views', $views + $num);
-
}
-
//输出数量
-
return $views;
-
}
以上就是 WordPress 免插件实现显示文章浏览量次数的几种常见方法,原理基本都一样,选择适合自己的任何一种,都可以实现在自己建网站时显示文章的浏览量了,但是有一个弊端就是每刷新一下,浏览量自动的增加一次,如果你不希望刷新增加浏览量可以阅读“WordPress 文章刷新不影响浏览量点击量统计代码”此文章进行设置。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
还没有任何评论,赶紧来占个楼吧!