wordpress怎么添加博客统计小工具
博客统计功能可以统计博客的运行时间、文章数量、评论数量等,但是很多wordpress主题没有自带这个博客统计小工具,比如新酱的yusi主题就没有自带,经过昨天的捣鼓,终于把博客统计小工具弄好了,现在新酱就教大家如何手动添加这个功能。
添加博客统计小工具代码
在桌面上新建一个文本文档,把后缀txt修改成php,将下面的代码复制到其中保存。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
<?php // 站点统计小工具 // 代码来自网络 class EfanBlogStat extends WP_Widget{ function EfanBlogStat(){ // 定义小工具的构造函数 $widget_ops = array('classname' => 'widget_archive', 'description' => '显示站点的统计信息'); $this->WP_Widget(false, '站点统计', $widget_ops); } function form($instance){ // 表单函数,控制后台显示 // $instance 为之前保存过的数据 // 如果之前没有数据的话,设置默认量 $instance = wp_parse_args( (array)$instance, array( 'title' => '站点统计', 'establish_time' => '2018-01-01' ) ); $title = htmlspecialchars($instance['title']); $establish_time = htmlspecialchars($instance['establish_time']); // 表格布局输出表单 $output = '<table>'; $output .= '<tr><td>标题</td><td>'; $output .= '<input id="'.$this->get_field_id('title') .'" name="'.$this->get_field_name('title').'" type="text" value="'.$instance['title'].'" />'; $output .= '</td></tr><tr><td>建站日期:</td><td>'; $output .= '<input id="'.$this->get_field_id('establish_time') .'" name="'.$this->get_field_name('establish_time').'" type="text" value="'.$instance['establish_time'].'" />'; $output .= '</td></tr></table>'; echo $output; } function update($new_instance, $old_instance){ // 更新数据的函数 $instance = $old_instance; // 数据处理 $instance['title'] = strip_tags(stripslashes($new_instance['title'])); $instance['establish_time'] = strip_tags(stripslashes($new_instance['establish_time'])); return $instance; } function widget($args, $instance){ extract($args); //展开数组 $title = apply_filters('widget_title',empty($instance['title']) ? ' ' : $instance['title']); $establish_time = empty($instance['establish_time']) ? '2018-01-01' : $instance['establish_time']; echo $before_widget; echo $before_title . $title . $after_title; echo '<ul>'; // $this->efan_get_blogstat($establish_time, $instance); $this->efan_get_blogstat($establish_time); echo '</ul>'; echo $after_widget; } function efan_get_blogstat($establish_time /*, $instance */){ // 相关数据的获取 global $wpdb; $count_posts = wp_count_posts(); $published_posts = $count_posts->publish; $comments_count = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments"); $time = floor((time()-strtotime($establish_time))/86400); $count_tags = wp_count_terms('post_tag'); $count_pages = wp_count_posts('page'); $page_posts = $count_pages->publish; $count_categories = wp_count_terms('category'); $link = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->links WHERE link_visible = 'Y'"); $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)); $total_views = $wpdb->get_var("SELECT SUM(meta_value+0) FROM $wpdb->postmeta WHERE meta_key = 'views'"); // 显示数据 $output = '<li>文章总数:'; $output .= $published_posts; $output .= ' 篇</li>'; $output .= '<li>评论数目:'; $output .= $comments_count; $output .= ' 条</li>'; $output .= '<li>页面总数:'; $output .= $page_posts; $output .= ' 个</li>'; $output .= '<li>分类总数:'; $output .= $count_categories; $output .= ' 个</li>'; $output .= '<li>标签总数:'; $output .= $count_tags; $output .= ' 个</li>'; $output .= '<li>友链总数:'; $output .= $link; $output .= ' 个</li>'; $output .= '<li>浏览次数:'; $output .= $total_views; $output .= ' 次</li>'; $output .= '<li>建站日期:'; $output .= $establish_time; $output .= '</li>'; $output .= '<li>运行天数:'; $output .= $time; $output .= ' 天</li>'; $output .= '<li>最后更新:'; $output .= $last; $output .= '</li>'; echo $output; } } function EfanBlogStat(){ // 注册小工具 register_widget('EfanBlogStat'); } add_action('widgets_init','EfanBlogStat'); ?> |
把这个php文件上传到你的主题根目录下面,然后在主题的functions.php文件里面写入这段代码添加这个小工具。
1 2 |
//注册博客统计小工具 include("qcgzxw_bktj.php"); |
qcgzxw_bktj.php是我上传的php文件名字,根据你们的名字进行修改。
使用博客统计小工具
添加完小工具后来到wordpress后台,选择外观-->小工具就可以看到博客统计小工具了。
博客统计小工具css问题
当你启用这个博客统计小工具后你会发现它是这个样子的。
它没有任何的css,css需要根据你主题自身的小工具css来设置,我这里就根据我的主题说一下思路。
首先找一个你看着顺眼的主题自带小工具,我就选择下面这个了。
对着它右键-->审查元素,图中这个div就是这个小工具了。
将widget_archive复制下来,打开博客统计小工具的php,修改它的class
1 2 3 4 5 |
function EfanBlogStat(){ // 定义小工具的构造函数 $widget_ops = array('classname' => '填写你复制的class', 'description' => '显示站点的统计信息'); $this->WP_Widget(false, '站点统计', $widget_ops); } |
修改好后保存,刷新所有缓存,特别是浏览器缓存,然后博客统计小工具就跟你的主题适应了。
博客统计小工具显示参数修改
如果你不想显示图中的那么多项,只想自定义显示,把博客统计小工具代码中的这段代码修改,不想显示哪项就把它删了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
// 显示数据 $output = '<li>文章总数:'; $output .= $published_posts; $output .= ' 篇</li>'; $output .= '<li>评论数目:'; $output .= $comments_count; $output .= ' 条</li>'; $output .= '<li>页面总数:'; $output .= $page_posts; $output .= ' 个</li>'; $output .= '<li>分类总数:'; $output .= $count_categories; $output .= ' 个</li>'; $output .= '<li>标签总数:'; $output .= $count_tags; $output .= ' 个</li>'; $output .= '<li>友链总数:'; $output .= $link; $output .= ' 个</li>'; $output .= '<li>浏览次数:'; $output .= $total_views; $output .= ' 次</li>'; $output .= '<li>建站日期:'; $output .= $establish_time; $output .= '</li>'; $output .= '<li>运行天数:'; $output .= $time; $output .= ' 天</li>'; $output .= '<li>最后更新:'; $output .= $last; $output .= '</li>'; |
比如我不想显示浏览次数就删除下面的代码
1 2 3 |
$output .= '<li>浏览次数:'; $output .= $total_views; $output .= ' 次</li>'; |
是不是很简单呢,快去给你的wordpress主题添加一个吧。
评论