3

wordpress给网站侧边栏添加一个网站信息统计工具

 2 years ago
source link: https://www.huhexian.com/30569.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

wordpress给网站侧边栏添加一个网站信息统计工具

青山 2022-03-0713:44:23评论7411字

有刚建站的小伙伴留言想要知道觅知博客侧边栏的小工具的搭建方法其实也很简单,之前是因为我懒没有更新,正好今天一并出了个教程给大家分享

实际效果预览:

wordpress给网站侧边栏添加一个网站信息统计工具安装教程:

1、首先第一步在你的主题目录下面新建一个widget-websitestat.php文件,放入以下代码:

  1. <?php
  2. // WordPress统计信息小工具
  3. // 名称: 网站信息统计
  4. // 修改版-美化版V2.1
  5. // by 蓝色创想 lansecx.cn
  6. // 定义小工具的类 EfanWebsitestat
  7. class EfanWebsitestat extends WP_Widget{
  8. function __construct(){
  9. // 定义小工具的构造函数
  10. $widget_ops = array('classname' => 'widget_Websitestat', 'description' => '显示网站的统计信息');
  11. // $this->WP_Widget(false, '网站统计', $widget_ops);
  12. parent::__construct( false, '网站统计', $widget_ops);
  13. function form($instance){
  14. // 表单函数,控制后台显示
  15. // $instance 为之前保存过的数据
  16. // 如果之前没有数据的话,设置默认量
  17. $instance = wp_parse_args(
  18. (array)$instance,
  19. array(
  20. 'title' => '网站信息统计',
  21. 'establish_time' => '2021-01-01'
  22. $title = htmlspecialchars($instance['title']);
  23. $establish_time = htmlspecialchars($instance['establish_time']);
  24. // 表格布局输出表单
  25. $output = '<table>';
  26. $output .= '<tr><td>标题</td><td>';
  27. $output .= '<input id="'.$this->get_field_id('title') .'" name="'.$this->get_field_name('title').'" type="text" value="'.$instance['title'].'" />';
  28. $output .= '</td></tr><tr><td>建站时间:</td><td>';
  29. $output .= '<input id="'.$this->get_field_id('establish_time') .'" name="'.$this->get_field_name('establish_time').'" type="text" value="'.$instance['establish_time'].'" />';
  30. $output .= '</td></tr></table>';
  31. echo $output;
  32. function update($new_instance, $old_instance){
  33. // 更新数据的函数
  34. $instance = $old_instance;
  35. // 数据处理
  36. $instance['title'] = strip_tags(stripslashes($new_instance['title']));
  37. $instance['establish_time'] = strip_tags(stripslashes($new_instance['establish_time']));
  38. return $instance;
  39. function widget($args, $instance){
  40. extract($args); //展开数组
  41. $title = apply_filters('widget_title',empty($instance['title']) ? ' ' : $instance['title']);
  42. $establish_time = empty($instance['establish_time']) ? '2021-01-01' : $instance['establish_time'];
  43. echo $before_widget;
  44. echo $before_title . $title . $after_title;
  45. echo '<div class="widgest-boys"><ul>';
  46. $this->efan_get_websitestat($establish_time);
  47. echo '</ul></div>';
  48. echo $after_widget;
  49. function efan_get_websitestat($establish_time){
  50. // 相关数据的获取
  51. global $wpdb;
  52. $count_posts = wp_count_posts();
  53. $published_posts = $count_posts->publish;
  54. $comments_count = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments");
  55. $time = floor((time()-strtotime($establish_time))/86400);
  56. $count_tags = wp_count_terms('post_tag');
  57. $count_pages = wp_count_posts('page');
  58. $link = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->links WHERE link_visible = 'Y'");
  59. $users = $wpdb->get_var("SELECT COUNT(ID) FROM $wpdb->users");
  60. $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')");
  61. $last = date('Y-m-d', strtotime($last[0]->MAX_m));
  62. $total_views = $wpdb->get_var("SELECT SUM(meta_value+0) FROM $wpdb->postmeta WHERE meta_key = 'views'");
  63. // 显示数据
  64. $output = '<div class="widgest-bg widgest-bg1"><div class="widgest-main"><div class="widgest-meat"><li>文章总数:';
  65. $output .= $published_posts;
  66. $output .= ' 篇</li></div></div></div>';
  67. $output .= '<div class="widgest-bg widgest-bg2"><div class="widgest-main"><div class="widgest-meat"><li>评论数目:';
  68. $output .= $comments_count;
  69. $output .= ' 条</li></div></div></div>';
  70. $output .= '<div class="widgest-bg widgest-bg3"><div class="widgest-main"><div class="widgest-meat"><li>标签总数:';
  71. $output .= $count_tags;
  72. $output .= ' 个</li></div></div></div>';
  73. $output .= '<div class="widgest-bg widgest-bg4"><div class="widgest-main"><div class="widgest-meat"><li>浏览次数:';
  74. $output .= $total_views;
  75. $output .= ' 次</li></div></div></div>';
  76. $output .= '<div class="widgest-bg widgest-bg5"><div class="widgest-main"><div class="widgest-meat"><li>友链总数:';
  77. $output .= $link;
  78. $output .= ' 个</li></div></div></div>';
  79. $output .= '<div class="widgest-bg widgest-bg6"><div class="widgest-main"><div class="widgest-meat"><li>我的朋友:';
  80. $output .= $users;
  81. $output .= ' 位</li></div></div></div>';
  82. $output .= '<div class="widgest-bg widgest-bg7"><div class="widgest-main"><div class="widgest-meat"><li>运行天数:';
  83. $output .= $time;
  84. $output .= ' 天</li></div></div></div>';
  85. $output .= '<div class="widgest-bg widgest-bg8"><div class="widgest-main"><div class="widgest-meat"><li>建站时间:';
  86. $output .= $establish_time;
  87. $output .= '</li></div></div></div>';
  88. $output .= '<div class="widgest-bg widgest-bg9"><div class="widgest-main"><div class="widgest-meat"><li>最后更新:';
  89. $output .= $last;
  90. $output .= '</li></div></div></div>';
  91. // 页面生成耗时+数据库查询
  92. $output .= '<div class="widgest-bg widgest-bg10"><div class="widgest-main"><div class="widgest-meat"><li>数据查询:';
  93. $output .= get_num_queries();
  94. $output .= ' 次 </li></div></div></div>';
  95. $output .= '<div class="widgest-bg widgest-bg11"><div class="widgest-main"><div class="widgest-meat"><li>生成耗时:';
  96. $output .= timer_stop(0,5);
  97. $output .= '秒</li></div></div></div>';
  98. echo $output;
  99. function EfanWebsitestat(){
  100. // 注册小工具
  101. register_widget('EfanWebsitestat');
  102. add_action('widgets_init','EfanWebsitestat');
  103. ?>

2、保存好上面代码上传文件到所用主题functions.php同目录中

3、在网站后台---》主题设置---》自定义代码---》自定义 CSS 样式,添加下面的 CSS 代码,

主题没有自定义 CSS 样式的,在主题目录下 style.css 添加也都可以。

  1. /*网站统计小模块*/
  2. .widget_Websitestat h3{font-weight:700;}.widgest-boys{overflow:hidden;}.widgest-boys .widgest-bg{margin: 4px; background-size: cover; background-repeat: no-repeat; background-position: center center; cursor: pointer; border-radius: 8px;}.widgest-boys .widgest-main{align-items: center; place-content: flex-start space-around; display: flex;}.widgest-boys .widgest-meat{display: block; margin-block-start: 1em; margin-block-end: 1em; margin-inline-start: 0px; margin-inline-end: 0px; color: rgb(255, 255, 255); font-weight: 700 !important; line-height: 1.5 !important;}.widgest-bg:not(article){transition: all 0.3s;}.widgest-bg:not(article):hover{transform: translateX(-10px);}
  3. /*图片路径设置*/
  4. .widgest-bg1{background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)),url(https://zhoudadatool.gitee.io/mizhimusicxuanfu/98doubk/cbltu/1/1.jpg);}
  5. .widgest-bg2{background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)),url(https://zhoudadatool.gitee.io/mizhimusicxuanfu/98doubk/cbltu/1/2.jpg);}
  6. .widgest-bg3{background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)),url(https://zhoudadatool.gitee.io/mizhimusicxuanfu/98doubk/cbltu/1/3.jpg);}
  7. .widgest-bg4{background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)),url(https://zhoudadatool.gitee.io/mizhimusicxuanfu/98doubk/cbltu/1/4.jpg);}
  8. .widgest-bg5{background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)),url(https://zhoudadatool.gitee.io/mizhimusicxuanfu/98doubk/cbltu/1/5.jpg);}
  9. .widgest-bg6{background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)),url(https://zhoudadatool.gitee.io/mizhimusicxuanfu/98doubk/cbltu/1/6.jpg);}
  10. .widgest-bg7{background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)),url(https://zhoudadatool.gitee.io/mizhimusicxuanfu/98doubk/cbltu/1/7.jpg);}
  11. .widgest-bg8{background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)),url(https://zhoudadatool.gitee.io/mizhimusicxuanfu/98doubk/cbltu/1/8.jpg);}
  12. .widgest-bg9{background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)),url(https://zhoudadatool.gitee.io/mizhimusicxuanfu/98doubk/cbltu/1/9.jpg);}
  13. .widgest-bg10{background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)),url(https://zhoudadatool.gitee.io/mizhimusicxuanfu/98doubk/cbltu/1/10.jpg);}
  14. .widgest-bg11{background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)),url(https://zhoudadatool.gitee.io/mizhimusicxuanfu/98doubk/cbltu/1/11.jpg);}
  15. /*网站信息统计小模块*/

4、另外上一步 CSS 代码中是有的 11 张图片是需要单独设置的,当然嫌麻烦的也可以引用我的,我把图片上传永久地址了

说明:不想用我的图片你自己用一张图片剪切成 11 份,然后按顺序添加进去,css 中”widgest-bg1-widgest-bg11″都是按顺序好的,在 url(图片链接路径)里面加就行

我是用下面的在线剪切工具,也挺方便可以实时看到剪切效果

在线地址:https://www.qtool.net/piccutting

wordpress给网站侧边栏添加一个网站信息统计工具5、在主题目录下/wp-content/themes/functions.php文件中放入下面的引用代码放在functions.php文件底部就可以
  1. include("widget-websitestat.php");

6、最后一步,在网站后台—》外观—》小工具—》觅知网站统计,添加首页到侧边栏即可完成。

wordpress给网站侧边栏添加一个网站信息统计工具最终效果:

wordpress给网站侧边栏添加一个网站信息统计工具

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK