WordPress添加侧栏小工具-博客统计(网站统计)

news/2024/5/8 21:32:34/文章来源:https://blog.csdn.net/weixin_42343931/article/details/121923348

   WordPress侧边栏“博客统计”小工具的制作方法。首先要下载cztcms.zip文件,解压得到一个PHP文件。蓝奏云地址:▶ cztcms.zip

1、将这个PHP文件放到主题目录下。打开主题目录下的function.php,在最后一个 ?> 前插入以下代码:

include("cztcms.php");

到“后台——外观——小工具”中添加“博客统计”小工具即可。默认是这样的:

2、由于原来的样式太丑了,我经过优化以后是这样的。我只用了其中的文章数和阅读数。其他的按照我的代码样式自己添加即可。

优化后的代码,将以下代码替换cztcms.php里面的代码即可。或者也可以自己新建一个cztcms.php文件,然后复制进去。以下代码是我的改造结果。你也可以自己去创造。

<?php
// 定义小工具的类 EfanBlogStat
class EfanBlogStat extends WP_Widget{function EfanBlogStat(){// 定义小工具的构造函数$widget_ops = array('classname' => 'widget_blogstat', 'description' => '显示博客的统计信息');$this->WP_Widget(false, '博客统计', $widget_ops);}function form($instance){// 表单函数,控制后台显示// $instance 为之前保存过的数据// 如果之前没有数据的话,设置默认量$instance = wp_parse_args((array)$instance,array('title' => '博客统计','establish_time' => '2020-02-02'));$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>';  $output .= '<br />输入数字1~11安排显示顺序,0表示不显示';$output .= '<table>';$output .= '<tr><td>日志总数:</td><td>';$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'].'" />';$output .= '</td></tr>';$output .= '<tr><td>草稿数目:</td><td>';$output .= '<input id="'.$this->get_field_id('draft_count_no') .'" name="'.$this->get_field_name('draft_count_no').'" type="text" value="'.$instance['draft_count_no'].'" />';$output .= '</td></tr>';$output .= '<tr><td>评论数目:</td><td>';$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'].'" />';$output .= '</td></tr>';$output .= '<tr><td>建站日期:</td><td>';$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'].'" />';$output .= '</td></tr>';$output .= '<tr><td>运行天数:</td><td>';$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'].'" />';$output .= '</td></tr>';$output .= '<tr><td>标签总数:</td><td>';$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'].'" />';$output .= '</td></tr>';$output .= '<tr><td>页面总数:</td><td>';$output .= '<input id="'.$this->get_field_id('page_count_no') .'" name="'.$this->get_field_name('page_count_no').'" type="text" value="'.$instance['page_count_no'].'" />';$output .= '</td></tr>';$output .= '<tr><td>分类总数:</td><td>';$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'].'" />';$output .= '</td></tr>';$output .= '<tr><td>友链总数:</td><td>';$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'].'" />';$output .= '</td></tr>';$output .= '<tr><td>用户总数:</td><td>';$output .= '<input id="'.$this->get_field_id('user_count_no') .'" name="'.$this->get_field_name('user_count_no').'" type="text" value="'.$instance['user_count_no'].'" />';$output .= '</td></tr>';$output .= '<tr><td>最后更新:</td><td>';$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'].'" />';$output .= '</td></tr>';$output .= '</table>';$output .= '<label><input id="'.$this->get_field_id('support_me') .'" name="'.$this->get_field_name('support_me').'" type="checkbox" ';if ($instance['support_me']) {$output .= 'checked="checked"';}$output .= ' /> 支持开发者</label>';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']) ? '2020-02-02' : $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;$draft_posts = $count_posts->draft;$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'"); $users = $wpdb->get_var("SELECT COUNT(ID) FROM $wpdb->users");$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'");  $counter = intval(file_get_contents("counter.dat"));  if(!$_SESSION['#'])  {  $_SESSION['#'] = true;  $counter++;  $fp = fopen("counter.dat","w");  fwrite($fp, $counter);  fclose($fp);  }  $output ='<table>';$output .= '<tr style="text-align:center;font-size:18px; font-family:黑体" >';$output .= '<td style="width:150px;">文章总数</td>';$output .= '<td style="width:150px;">访问总数</td>';$output .= '<td style="width:150px;">阅读总数</td>';$output .='</tr>';$output .='<br>';$output .='<tr style="text-align:center;font-size:16px; font-family:Consolas;">';$output .='<td style="width:150px;">';$output .='<a style="color:DodgerBlue;">';$output .= $published_posts;$output .='</a>';$output .=' 篇';$output .='</td>';$output .='<td style="width:150px;">';$output .='<a style="color:DodgerBlue;">';$output .= $counter;$output .='</a>';$output .=' 次';$output .='</td>';$output .='<td style="width:150px;">';$output .='<a style="color:DodgerBlue;">';$output .= $total_views;$output .='</a>';$output .=' 次';$output .='</td>';$output .='</tr>';$output .= '</table>';$output .= '<hr>';$output .='<p style="text-align:center;font-size:24px; font-family:Consolas;">';$output .='<a style="color:red;">♥ </a>';$output .='<a style="color:DodgerBlue;">2020-0202</a>';$output .='<a style="color:red;"> ♥</a>';$output .='</p>';if (is_user_logged_in()){}if (get_option("users_can_register") == 1){}echo $output;}}
function EfanBlogStat(){// 注册小工具register_widget('EfanBlogStat');
}
add_action('widgets_init','EfanBlogStat');
?>

3、中间的访问总数是自己写的代码,其实就是PHP统计网站访问次数的一个方法(刷新一次加一),上面的改造已经将这个功能融合,也可以单独使用。以下代码添加到需要显示的地方即可。会自动在站点根目录下新建一个www.dat文件,用来存放访问次数。具体代码如下。

<?php@session_start();  $counter = intval(file_get_contents("www.dat"));  if(!$_SESSION['#'])  {  $_SESSION['#'] = true;  $counter++;  $fp = fopen("www.dat","w");  fwrite($fp, $counter);  fclose($fp);  }  ?>
<p align="center">您是到访的第<?php echo "$counter";?>位用户</p>

4.再分享一段代码,可以显示网站运行天数实时更新精确到秒
代码:在需要显示的地方加入即可:

博客稳定运行 
<SPAN id=span_dt_dt style="color: #0196e3;"></SPAN>
<SCRIPT language=javascript>
function show_date_time(){
window.setTimeout("show_date_time()", 1000);
BirthDay=new Date("02/02/2020 00:00:00");//这个日期是建站日期
today=new Date();
timeold=(today.getTime()-BirthDay.getTime());
sectimeold=timeold/1000
secondsold=Math.floor(sectimeold);
msPerDay=24*60*60*1000
e_daysold=timeold/msPerDay
daysold=Math.floor(e_daysold);
e_hrsold=(e_daysold-daysold)*24;
hrsold=Math.floor(e_hrsold);
e_minsold=(e_hrsold-hrsold)*60;
minsold=Math.floor((e_hrsold-hrsold)*60);
seconds=Math.floor((e_minsold-minsold)*60);
span_dt_dt.innerHTML=""+daysold+"天"+hrsold+"小时"+minsold+"分"+seconds+"秒";
}
show_date_time();
</SCRIPT>

效果图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_818886.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP+MySQL实现精确统计网站访问量(IP个数)

基于WordPress的网站有很多统计功能。但是只能统计文章阅读数。不能统计访客人数。以下代码可以实现获取来访用户的IP地址&#xff0c;一个IP对应一次访问。即使刷新也不会增加访问量。这个非常精确。 1、创建一个存储数据的表。进入MySQL后直接创建即可。 create table wp_jc_…

gatsby_Gatsby更快的WordPress网站

gatsbyTalk about the latest cutting-edge web technologies, and you find some impressive names like React.js, Vue.js, Next.js, and so on. They have opened new gateways and approaches to building websites that can serve content to users quickly. 谈论最新的前…

从“奥运门票网站800万访问量”想到的成本、质量、进度、风险等关系

看到这个新闻后颇有一番滋味&#xff0c;更体验到我一直关注的软件性能着实无处不在&#xff0c;这个案例也确实值得我们好好反思一下。不知道网友们有没有报名参加国际日语考试的——这个网站每年05年前都有人不能报名&#xff0c;因为报名人数太多&#xff0c;所以报名当日大…

Web2.0网站的路径依赖--探讨蚂蚁社区为什么要导入博客

郑昀 2007-5-13以下文章即将讨论的问题涉及这几个关键词&#xff1a;l 网站启动的核心用户从哪里来&#xff1f;l 网站启动时需要什么样的种子用户&#xff1f;l 最初吸引来的种子用户对网站有什么路径依赖作用&#xff1f;麦田曾经问道&#xff1a;“4. …

郑昀邀请网站开发工程师架构师加盟Web3.0新锐网站[工作地点-北京财智国际大厦]

公司新年新气象&#xff0c;刚刚换到了一个大办公室&#xff0c;也离中关村更近了。随着公司规模的扩大&#xff0c;开始了新一轮的招兵买马&#xff0c;哈哈。请各位帮忙看看有没有合适的人选推荐&#xff0c;不胜感谢&#xff01;招聘:研发部招聘岗位1&#xff1a;PHP网站架构…

大型网站架构与分布式架构

解决问题的通用思路是将分而治之&#xff08;divide-and-conquer&#xff09;&#xff0c;将大问题分为若干个小问题&#xff0c;各个击破。在大型互联网的架构实践中&#xff0c;无一不体现这种思想。架构目标低成本:任何公司存在的价值都是为了获取商业利益。在可能的情况下&…

高性能网站性能优化

从LiveJournal后台发展看大规模网站性能优化方法于敦德 2006-3-16一、LiveJournal发展历程LiveJournal是99年始于校园中的项目&#xff0c;几个人出于爱好做了这样一个应用&#xff0c;以实现以下功能&#xff1a;博客&#xff0c;论坛 社会性网络&#xff0c;找到朋友 聚合&am…

JS实现网站悬浮广告

如图黄色区块会沿着浏览器的上下左右碰撞移动,可关闭,鼠标移上去会停止 <!doctype html> <html> <he><meta charset"utf-8"><title>广告</title><style type"text/css">*{pding:0px;margin:0px;}#ad{position:a…

一步一步SharePoint 2007之十七:解决实现Form认证后无法再用SharePoint Designer编辑网站的问题...

一步一步SharePoint 2007之十七&#xff1a;解决实现Form认证后无法再用SharePoint Designer编辑网站的问题摘要前面的文章中&#xff0c;我曾提到&#xff0c;Form认证目前还有缺陷&#xff0c;就是实现Form认证后&#xff0c;就不可以用SharePoint Designer编辑网站了。这点真…

[导入]谈谈网站静态化

摘要: 写在前头静态化是解决减轻网站压力,提高网站访问速度的常用方案,但在强调交互的We2.0 时代,对静态化提出了更高的要求,静态不仅要能静,还要能动,下面我通过一个项目,谈谈网站静态化后的架构设计方案,同时和大家探讨一下,在开源产品大行其道,言架构必称MemberCache, Nginx…

如何获取视频网站的信息(土豆例子)

现在不少的视频网站都提供转载视频的功能 我之前写过一篇CHSNS#中通过youku的视频网址获取视频截图及视频信息&#xff0c;虽然可能地址已经改了但却未涉及土豆网&#xff0c;其实土豆获取的方法与优酷是差不多的。 http://www.tudou.com/ 其中的一个视频 http://www.tudou.com…

h5游戏网站源码_从WEB前端角度看H5游戏开发

WEB开发与游戏开发的区别WEB前端的大部分工作集中在利用现有的主流前端框架&#xff08;vue / react / angular&#xff09;及其周边开源代码库生态组织整个项目的架构并实现业务逻辑代码&#xff0c;往往同一种逻辑可以选择用不同的抽象方式来实现&#xff0c;不同抽象方式的思…

浅谈网站架构分析

前后端分离&#xff1a;在前后端不分离的应用模式中&#xff0c;前端页面看到的效果都是由后端控制&#xff0c;由后端渲染页面或重定向&#xff0c;也就是后端需要控制前端的展示&#xff0c;前端与后端的耦合度很高。 核心&#xff1a;后端只需要通过接口发送json数据&#…

给图片下方加水印_批量加水印、批量压缩图片:这个神奇的网站你值得拥有!...

各位老铁们大家好&#xff0c;听说今早一辆装有13吨百世快递的货车被烧了&#xff0c;我是只能暗自祈祷自己快递不在其中的宝藏女孩9妹~对于很多需要推送图文的新媒体人来说&#xff0c;图片处理是每天的必经工作任务(就好像9妹一样&#xff0c;能文能武还能出策划)&#xff0c…

防火墙 用户只能访问指定网站_网站优化吸引用户访问的方法有哪些?

如果网站长期没有被访问的话&#xff0c;即使网站设置的再精美都是没有用的&#xff0c;互联网用户使用搜索引擎搜索不同的网站&#xff0c;但一些用户进入网站后返回很快&#xff0c;而一些用户长期频繁地访问网站&#xff0c;甚至收集网站。这是网站优化的魅力所在&#xff0…

如何防止通过url攻击_如何通过更好的URL结构改善网站SEO排名

URL是有效的SEO策略不可或缺的一部分。它们被视为网站在互联网上轻松被访问的关键因素之一。网站的URL应以符合逻辑结构的一致方式进行定义。选定的URL结构应反映网站内容的组织方式&#xff0c;并且包含访问者用来查找站点的关键词。这就是为什么它如此重要以至于要注意网站的…

php 爬虫_公众号简单爬虫--把公众号文章全部转载到网站(三)

公众号简单爬虫--把公众号文章全部转载到网站&#xff08;三&#xff09;根据上一篇的方法,我们得到了一个包含标题,时间,作者,封面,文章连接等信息的json文件.接下来,就是要提取文章详细信息和把一系列的信息写入数据库.这里先说明几点,我们转贴公众号文章,会有个问题,就是图片…

PHP毕业设计旅游网站,基于PHP旅游网站的开发与设计(含录像)

基于PHP旅游网站的开发与设计(含录像)(程序代码,数据库,毕业论文25000字)随着Internet的普及&#xff0c;越来越多的企业建立了自己的WWW网站&#xff0c;电子商务应时而生。本论文主要讨论如何建立一个简单的旅游电子商务网站。本网站主要包括4大系统&#xff1a;注册模块&…

vue倒计时时间实现圆形进度条_Vue实现列表倒计时效果_vue.js教程,AngularJS教程_我爱模板网 - 提供下载各种免费建站资源,免费网站模板,免费网页特效,让你爱上建站!...

我爱模板网要实现下面的效果&#xff1a;即从后台获取数据&#xff0c;然后根据返回的时间&#xff0c;如“2019-12-17 23:59:59”&#xff0c;做成倒计时效果。第一步、布局&#xff1a;{{item.storeName}}{{item.storeDistance}}{{item.storeIndustryName}}{{item.countDownH…

利用Minify加速 优化网站性能教程

Minify 是用PHP5开发的应用&#xff0c;通过遵循一些Yahoo的优化规则来提高网站的性能。它会合并多个CSS或者JavaScript文件&#xff0c;移除一些不必要的空格和注释&#xff0c;进行gzip压缩&#xff0c;并且会设置浏览器的缓存头。Minify 在设计上和Yahoo的 Combo Handler Se…