wordpress5.3显示某篇文章时,本身并没有统计文章点击次数的功能。需要开发人员自己实现或者使用第三方插件实现。
非插件统计文章浏览次数
在主题的 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;
}
代码分析:上面的代码中使用get_post_meta()和add_post_meta()函数
所有发布的文章和页面都是存储在wp_posts数据表中,该表没有哪个字段可以存放浏览次数
而get_post_meta()和add_post_meta()操作的数据表是:wp_postmeta数据表
在需要显示该统计次数的地方使用下面的代码调用:
下面是single.php文件的参考代码
<?php
get_header();
?>
<?php
if(have_posts()):
while(have_posts()):the_post();
the_title('<h3>','</h3>');
post_views('<div>点击量:<span>', '</span>次</div>'); //显示
the_content();
endwhile;
endif;
$args = array(
'next_text' => '上一篇:'. '%title',
'prev_text' => '下一篇:'. '%title'
);
the_post_navigation($args);
?>
<?php
get_footer();
?>
使用插件实现统计文章浏览次数
搜索安装插件:WP-Postviews
在显示文章的地方,如
<?php while ( have_posts() ) : the_post(); ?>
在下边随便一栏添加代码:<span>浏览次数:<?php if(function_exists('the_views')){ the_views() ;} ?></span>
该插件可以设置显示次数的样式