A-A+

给Ality主题添加网站统计小工具

2020年02月14日 学习工作 暂无评论 阅读 456 次

以前鸟哥的hotnews主题,有个网站数据统计。换了Ality后,没有了,不习惯。

搜索了一下,找了代码,添加成功了。

自己没有一点html语言基础,完全是根据已有代码蒙的,搞定了,特来分享一下。

因为不懂代码,所以估计代码也不是全对,请专家指正。

在主题里的inc/functions/widgets.php,修改widgets.php文件。

在文件里最后,加入下面代码即可

  1. // 本站统计  
  2. class recent_Tongji extends WP_Widget {  
  3.      function recent_Tongji() {  
  4.          $widget_ops = array('description' => '后来自己增加的本站统计小工具');  
  5.          $this->WP_Widget('recent_Tongji', '主题  本站统计', $widget_ops);  
  6.      }  
  7.         function form($instance){  
  8.         // 表单函数,控制后台显示  
  9.         // $instance 为之前保存过的数据  
  10.         // 如果之前没有数据的话,设置默认量  
  11.         $instance = wp_parse_args(  
  12.             (array)$instance,  
  13.             array(  
  14.                 'title' => '本站统计',  
  15.                 'establish_time' => '2013-01-27'  
  16.             )  
  17.         );  
  18.         /*  
  19.         $instance = wp_parse_args(  
  20.             (array)$instance,  
  21.             array(  
  22.                 'title' => '本站统计',  
  23.                 'establish_time' => '2007-03-06',  
  24.                 'post_count_no' => '1',  
  25.                 'draft_count_no' => '0',  
  26.                 'comment_count_no' => '2',  
  27.                 'establish_date_no' => '3',  
  28.                 'establish_time_no' => '4',  
  29.                 'tag_count_no' => '0',  
  30.                 'page_count_no' => '0',  
  31.                 'cat_count_no' => '0',  
  32.                 'link_count_no' => '0',  
  33.                 'user_count_no' => '0',  
  34.                 'last_update_no' => '5',  
  35.                 'support_me' => false  
  36.             )  
  37.         );  
  38.         */  
  39.         $title = htmlspecialchars($instance['title']);  
  40.         $establish_time = htmlspecialchars($instance['establish_time']);  
  41.         /*  
  42.         $post_count_no = htmlspecialchars($instance['post_count_no']);  
  43.         $draft_count_no = htmlspecialchars($instance['draft_count_no']);  
  44.         $comment_count_no = htmlspecialchars($instance['comment_count_no']);  
  45.         $establish_date_no = htmlspecialchars($instance['establish_date_no']);  
  46.         $establish_time_no = htmlspecialchars($instance['establish_time_no']);  
  47.         $tag_count_no = htmlspecialchars($instance['tag_count_no']);  
  48.         $page_count_no = htmlspecialchars($instance['page_count_no']);  
  49.         $cat_count_no = htmlspecialchars($instance['cat_count_no']);  
  50.         $link_count_no = htmlspecialchars($instance['link_count_no']);  
  51.         $user_count_no = htmlspecialchars($instance['user_count_no']);  
  52.         $last_update_no = htmlspecialchars($instance['last_update_no']);  
  53.         $support_me = $instance['support_me'];  
  54.         */  
  55.           
  56.         // 表格布局输出表单  
  57.         $output = '<table>';  
  58.         $output .'<tr><td>标题</td><td>';  
  59.         $output .'<input id="'.$this->get_field_id('title') .'" name="'.$this->get_field_name('title').'" type="text" value="'.$instance['title'].'" />';  
  60.         $output .'</td></tr><tr><td>建站日期:</td><td>';     
  61.         $output .'<input id="'.$this->get_field_id('establish_time') .'" name="'.$this->get_field_name('establish_time').'" type="text" value="'.$instance['establish_time'].'" />';     
  62.         $output .'</td></tr></table>';    
  63.         /*  
  64.         $output .'<br />输入数字1~11安排显示顺序,0表示不显示';  
  65.         $output .'<table>';  
  66.           
  67.         $output .'<tr><td>日志总数:</td><td>';  
  68.         $output .'<input id="'.$this->get_field_id('post_count_no') .'" name="'.$this->get_field_name('post_count_no').'" type="text" value="'.$instance['post_count_no'].'" />';  
  69.         $output .'</td></tr>';  
  70.           
  71.         $output .'<tr><td>评论数目:</td><td>';  
  72.         $output .'<input id="'.$this->get_field_id('comment_count_no') .'" name="'.$this->get_field_name('comment_count_no').'" type="text" value="'.$instance['comment_count_no'].'" />';  
  73.         $output .'</td></tr>';  
  74.           
  75.         $output .'<tr><td>分类总数:</td><td>';  
  76.         $output .'<input id="'.$this->get_field_id('cat_count_no') .'" name="'.$this->get_field_name('cat_count_no').'" type="text" value="'.$instance['cat_count_no'].'" />';  
  77.         $output .'</td></tr>';  
  78.           
  79.         $output .'<tr><td>标签总数:</td><td>';  
  80.         $output .'<input id="'.$this->get_field_id('tag_count_no') .'" name="'.$this->get_field_name('tag_count_no').'" type="text" value="'.$instance['tag_count_no'].'" />';  
  81.         $output .'</td></tr>';  
  82.           
  83.         $output .'<tr><td>建站日期:</td><td>';  
  84.         $output .'<input id="'.$this->get_field_id('establish_date_no') .'" name="'.$this->get_field_name('establish_date_no').'" type="text" value="'.$instance['establish_date_no'].'" />';  
  85.         $output .'</td></tr>';  
  86.           
  87.         $output .'<tr><td>运行天数:</td><td>';  
  88.         $output .'<input id="'.$this->get_field_id('establish_time_no') .'" name="'.$this->get_field_name('establish_time_no').'" type="text" value="'.$instance['establish_time_no'].'" />';  
  89.         $output .'</td></tr>';  
  90.           
  91.   
  92.         $output .'<tr><td>友链总数:</td><td>';  
  93.         $output .'<input id="'.$this->get_field_id('link_count_no') .'" name="'.$this->get_field_name('link_count_no').'" type="text" value="'.$instance['link_count_no'].'" />';  
  94.         $output .'</td></tr>';  
  95.           
  96.           
  97.         $output .'<tr><td>最后更新:</td><td>';  
  98.         $output .'<input id="'.$this->get_field_id('last_update_no') .'" name="'.$this->get_field_name('last_update_no').'" type="text" value="'.$instance['last_update_no'].'" />';  
  99.         $output .'</td></tr>';  
  100.         $output .'</table>';  
  101.         */  
  102.         /*  
  103.         $output .'<label><input id="'.$this->get_field_id('support_me') .'" name="'.$this->get_field_name('support_me').'" type="checkbox" ';  
  104.         if ($instance['support_me']) {  
  105.             $output .'checked="checked"';  
  106.         }  
  107.         $output .' /> 支持开发者</label>';  
  108.         */  
  109.           
  110.           
  111.         echo $output;     
  112.     }  
  113.       
  114.     function update($new_instance, $old_instance){  
  115.         // 更新数据的函数  
  116.         $instance = $old_instance;  
  117.         // 数据处理  
  118.         $instance['title'] = strip_tags(stripslashes($new_instance['title']));  
  119.         $instance['establish_time'] = strip_tags(stripslashes($new_instance['establish_time']));  
  120.         /*  
  121.         $instance['post_count_no'] = strip_tags(stripslashes($new_instance['post_count_no']));  
  122.         $instance['draft_count_no'] = strip_tags(stripslashes($new_instance['draft_count_no']));  
  123.         $instance['comment_count_no'] = strip_tags(stripslashes($new_instance['comment_count_no']));  
  124.         $instance['establish_date_no'] = strip_tags(stripslashes($new_instance['establish_date_no']));  
  125.         $instance['establish_time_no'] = strip_tags(stripslashes($new_instance['establish_time_no']));  
  126.         $instance['tag_count_no'] = strip_tags(stripslashes($new_instance['tag_count_no']));  
  127.         $instance['page_count_no'] = strip_tags(stripslashes($new_instance['page_count_no']));  
  128.         $instance['cat_count_no'] = strip_tags(stripslashes($new_instance['cat_count_no']));  
  129.         $instance['link_count_no'] = strip_tags(stripslashes($new_instance['link_count_no']));  
  130.         $instance['user_count_no'] = strip_tags(stripslashes($new_instance['user_count_no']));  
  131.         $instance['last_update_no'] = strip_tags(stripslashes($new_instance['last_update_no']));  
  132.         */  
  133.         return $instance;  
  134.     }  
  135.       
  136.     function widget($args, $instance){  
  137.         extract($args); //展开数组  
  138.         $title = apply_filters('widget_title',empty($instance['title']) ? '&nbsp;' : $instance['title']);  
  139.         $establish_time = empty($instance['establish_time']) ? '2013-01-27' : $instance['establish_time'];  
  140.         echo $before_widget;  
  141.         echo $before_title . $title . $after_title;  
  142.         echo '<ul>';  
  143.         // $this->efan_get_blogstat($establish_time, $instance);  
  144.         $this->efan_get_blogstat($establish_time);  
  145.         echo '</ul>';  
  146.         echo $after_widget;  
  147.     }  
  148.       
  149.     function efan_get_blogstat($establish_time /*, $instance */){  
  150.         // 相关数据的获取  
  151.         global $wpdb;  
  152.         $count_posts = wp_count_posts();  
  153.         $published_posts = $count_posts->publish;  
  154.         $draft_posts = $count_posts->draft;  
  155.         $comments_count = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments");  
  156.         $time = floor((time()-strtotime($establish_time))/86400);  
  157.         $count_tags = wp_count_terms('post_tag');  
  158.         $count_pages = wp_count_posts('page');  
  159.         $page_posts = $count_pages->publish;  
  160.         $count_categories = wp_count_terms('category');   
  161.         $link = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->links WHERE link_visible = 'Y'");   
  162.         $users = $wpdb->get_var("SELECT COUNT(ID) FROM $wpdb->users");  
  163.         $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')");  
  164.         $last = date('Y-n-j', strtotime($last[0]->MAX_m));  
  165.         $total_views = $wpdb->get_var("SELECT SUM(meta_value+0) FROM $wpdb->postmeta WHERE meta_key = 'views'");    
  166.         // 显示数据  
  167.         /*  
  168.         $op = array(  
  169.             $published_posts,  
  170.             $draft_posts,  
  171.             $comments_count,  
  172.             $establish_time,  
  173.             $time,  
  174.             $count_tags,  
  175.             $page_posts,  
  176.             $count_categories,  
  177.             $link,  
  178.             $users,  
  179.             $last  
  180.         );  
  181.         $output = "";  
  182.         foreach ($instance as $key => $value){  
  183.             switch ($value){  
  184.                 case "1":   
  185.                 case "2":  
  186.                 case "3":  
  187.                 case "4":  
  188.                 case "5":  
  189.                 case "6":  
  190.                 case "7":  
  191.                 case "8":  
  192.                 case "9":  
  193.                 case "10":  
  194.                 case "11":  
  195.                 default: $output .= $this->efan_get_var_name($key, $op);break;  
  196.             }  
  197.         }  
  198.         */  
  199.         $output = '<li>日志总数:';  
  200.         $output .= $published_posts;  
  201.         $output .' 篇</li>';  
  202.         $output .'<li>评论数目:';  
  203.         $output .= $comments_count;  
  204.         $output .' 条</li>';  
  205.         $output .'<li>分类总数:';  
  206.         $output .= $count_categories;  
  207.         $output .' 个</li>';  
  208.         $output .'<li>标签总数:';  
  209.         $output .= $count_tags;  
  210.         $output .' 个</li>';  
  211.         $output .'<li>友链总数:';  
  212.         $output .= $link;  
  213.         $output .' 个</li>';  
  214.           
  215.         $output .'<li>浏览次数:';  
  216.         $output .= $total_views;  
  217.         $output .' 次</li>';  
  218.         $output .'<li>建站日期:';  
  219.         $output .= $establish_time;  
  220.         $output .'</li>';  
  221.         $output .'<li>运行天数:';  
  222.         $output .= $time;  
  223.         $output .' 天</li>';  
  224.   
  225.         $output .'<li>最后更新:';  
  226.         $output .= $last;  
  227.         $output .'</li>';  
  228.           
  229.         echo $output;  
  230.     }  
  231.     /*  
  232.     function efan_get_var_name($key, $op){  
  233.         extract($op);  
  234.         switch ($key){  
  235.             case "post_count_no": return '<li>日志总数:'.$published_posts.' 篇</li>';  
  236.             case "comment_count_no": return '<li>评论数目:'.$draft_posts.' 条</li>';  
  237.             case "establish_date_no": return '<li>建站日期:'.$establish_time.'</li>';  
  238.             case "establish_time_no": return '<li>运行天数:'.$time.' 天</li>';  
  239.             case "tag_count_no": return '<li>标签总数:'.$count_tags.' 个</li>';  
  240.             case "cat_count_no": return '<li>分类总数:'.$count_categories.' 个</li>';  
  241.             case "link_count_no": return '<li>友链总数:'.$link.' 个</li>';  
  242.             case "last_update_no": return '<li>最后更新:'.$last.'</li>';  
  243.         }  
  244.     }  
  245.     */  
  246. }  
  247.   
  248. add_action( 'widgets_init', create_function( '', 'register_widget( "recent_Tongji" );' ) );  
标签:

给我留言

Copyright © 安静的角落 保留所有权利.   Theme  Ality

用户登录

分享到: