元旦的钟声敲过,我们站长通常都会对上一年度博客的情况作个总结,如发布了几篇文章,有几条评论,浏览量多少,以及哪些文章阅读量最高,哪些文章评论最多等。既是更博过程的回顾,也可让读者对自己的博客有个全面的了解。
WordPress 网站后台统计的,是博客建立以来全部的浏览量、文章数和评论数,如何实现统计指定年度内的数据呢?我参照 懿古今 的方法,制作了一个文章模板,以后每年发布年度文章统计时,只需输入一个年份就能自动生成了。
文章模板的制作和使用方法如下:
1、建立文章模板文件。打开当前使用的主题文件夹,将 single.php 文件复制另存为 template-years.php 文件,其中 template-不可修改,years 可修改为其他便于记忆的名字。(文件命名很重要,不然后面找不到文章模板的。)
2、编写模板文件代码。
1)标记为模板。没这段代码,系统就不会识别它是模板文件。打开 template-years.php 文件,在文件第一行添加以下代码并保存:
<?php /* Template Name: 年度文章统计 Template Post Type: post */ ?>
2)代码插入位置。打开 template-years.php 文件,找到以下代码,在该代码下方添加功能代码:
<?php the_content(); ?>
3)编写功能代码。
年度浏览最多的十篇文章
<?php if(get_post_meta($post->ID, 'years', true)){$ndtj = get_post_meta($post->ID, 'years', true);}else{$ndtj = date('Y')-1;}?> <h2><strong><?php echo $ndtj;?>年度浏览最多的十篇文章</strong></h2> <?php query_posts( array( 'year' => $ndtj, 'meta_key' => 'views', 'orderby' => 'meta_value_num', 'showposts' => '10', 'order' => 'DESC' ) ); if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <li><a href="<?php echo get_permalink();?>" target="_blank"><?php echo get_the_title();?>(<?php the_views();?>)</a></li> <?php endwhile;wp_reset_postdata(); endif;?>
第 4 行代码中, 'showposts' => '10',10 就是显示多少篇文章,可根据实际情况修改。DESC 改为 ASC ,即为统计年度内阅读量最少的文章。
标题后的浏览量,直接借用了 WP-PostViews 插件的 the_views() 函数。这上基础数据统计插件,建议大家安装一下,后台文章列表中还可按浏览量排序。
年度评论最多的十篇文章
<?php $next_year = $ndtj + 1; $result = $wpdb->get_results("SELECT comment_count,ID,post_title,post_date FROM $wpdb->posts WHERE post_date BETWEEN '$ndtj-01-01' AND '$next_year-01-01' ORDER BY comment_count DESC LIMIT 0 , 10"); foreach ($result as $post) { setup_postdata($post); $postid = $post->ID; $title = $post->post_title; $commentcount = $post->comment_count; if ($commentcount != 0) { ?> <li><a href="<?php echo get_permalink($postid); ?>" title="<?php echo $title ?>"><?php echo $title ?></a> (<?php echo $commentcount ?>)</li> <?php } } ?>
此代码参考了 代码狗 的方法,其中的数字 10 和 DESC 排序也可以如上修改。
年度发布文章总数量
<?php if(!function_exists("get_num_posts_by_year")) { function get_num_posts_by_year( $year ) { global $wpdb; $next_year = $year + 1; return $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->posts WHERE post_date >= %s AND post_date < %s AND post_type = %s AND post_status = %s", "$year-01-01", "$next_year-01-01", "post", "publish" ) ); } } ?>
这是统计一个年度内发布的文章总数的,用的是 沙唐桔 的办法,在需要显示的地方键入如下代码:
<?php echo $ndtj;?>年发布 <?php echo get_num_posts_by_year ( $ndtj );?> 篇
年度收到评论总数量
<?php if(!function_exists("get_num_comments_by_year")) { function get_num_comments_by_year( $year ) { global $wpdb; $next_year = $year + 1; return $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->comments WHERE comment_date BETWEEN '$year-01-01' AND '$next_year-01-01' AND comment_approved = '1' AND comment_type = 'comment'", ) ); } } ?>
在需要显示的地方键入如下代码:
<?php echo $ndtj;?>年收到 <?php echo get_num_comments_by_year( $ndtj );?> 条
全站浏览总数量
<?php if(function_exists('the_views')) { get_totalviews();}?>
我是直接用了WP-PostViews 插件的 get_totalviews() 函数,方便的很。
网站统计及运行状态信息
日志总数:<?php $count_posts = wp_count_posts(); echo $published_posts = $count_posts->publish;?>篇 评论总数:<?php echo $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments");?>条 分类总数:<?php echo $count_categories = wp_count_terms('category'); ?>个 标签总数:<?php echo $count_tags = wp_count_terms('post_tag'); ?>个 友情链接:<?php $link = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->links WHERE link_visible = 'Y'"); echo $link; ?>个 网站运行:<?php echo floor((time()-strtotime("2011-7-27"))/86400); ?>天 最后更新:<?php $last = $wpdb->get_results("SELECT MAX(post_modified) AS MAX_m FROM $wpdb->posts WHERE (post_type = 'post' OR post_type = 'page') AND (post_status = 'publish' OR post_status = 'private')");$last = date('Y年n月j日', strtotime($last[0]->MAX_m));echo $last; ?>
这个内容,许多站长会制作成小工具摆在侧边栏中,我们把它放在年度文章统计中,也算是网站全面信息展示吧。
3、文章模板使用方法。
1)撰写文章内容。WordPress 后台正常发布一篇年度总结文章,文章标题和内容正常填写。
2)创建自定义字段。在“自定义字段”中点击“输入新栏目”,添加一个名称为:years,值为想要统计的年度,如 2020,并点击【添加自定义字段】按钮,完成赋值。
3)选用文章模板。在“文章属性”中选择“年度文章统计”模板,模板名称就是第 2 步所填写的名称。
4)发布文章。完成以上步骤,就可以正常发布文章了。我们即可在该篇文章正文内容下方看到定制的统计信息。看我网站的效果:2020 年度浏览/评论最多的十篇文章
如果没有看到“自定义字段”或“文章属性”,请点击右上角的“显示选项”勾选“自定义字段”或“文章属性”即可。古腾堡编辑器则在“偏好设置”中勾选。
如果你不想自己多费精力去折腾代码,站长就把个模板文件分享给大家,你建立自己的模板文件后,直接复制功能代码到相应位置即可。
这个模板还不够完美,缺少了年度浏览总数量,虽然可以通过百度统计一类的统计工具获得,但我还是想通过网站数据库读取出来,但尝试了几段代码都没成功,坐等攻城狮们能给支个招。