返回列表 发布新帖

[WordPress插件] WordPress后台增加百度统计小工具,实时显示PV/UV/IP等数据

643 0
发表于 2023-3-14 14:15:23 | 显示全部楼层 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
1.png


做网站肯定要了解相关网站数据,有时候懒得登陆查看,例如一些PV/UV/IP等数据,那么我们可以直接使用百度统计的api,在WordPress的后台仪表盘进行一个简单的显示,这里为大家整理了一些函数,大家直接放在主题的functions.php文件中即可。并且全局AJAX调用,也不会拖慢后台的速度

显示效果如下:

2.png


实现方式如下:

首先需要使用到WordPress使用wp_remote_get和wp_remote_post进行get和post请求,并封装为函数:

具体方法大家自行百度

这里需要调用其doPost方法

  1. function zeo_get_baidu_analyse()
  2. {
  3.     $url = 'https://api.baidu.com/json/tongji/v1/ReportService/getData'; //百度商业账号请求地址
  4.     // 账户类型,默认1即可
  5.     $type         = '1';
  6.     // 站点ID,可以提供地址栏拿到
  7.     $siteId     = 'xxx';
  8.     // 登录百度统计的用户名
  9.     $username   = 'xxx';
  10.     // 登录百度统计的密码
  11.     $password   = 'xxx';
  12.     // Token 获取方式:https://tongji.baidu.com/web/help/article?id=129&type=0
  13.     $toekn      = _opz('baidu_tongji_token');
  14.     //统计天数,维度,默认1
  15.     $day = 1;
  16.     $headers = array(
  17.         'Content-Type' => ' application/json'
  18.     );
  19.     $data_body = [
  20.         'header' => [
  21.             'account_type'  => $type,
  22.             'username'      => $username,
  23.             'password'      => $password,
  24.             'token'         => $toekn,
  25.         ],
  26.         'body' => [
  27.             'siteId'        => $siteId,
  28.             'method'        => 'overview/getTimeTrendRpt',
  29.             'start_date'    => date('Y-m-d', strtotime("-" . $day . " day")),
  30.             'end_date'      => date('Y-m-d'),
  31.             'metrics'       => 'pv_count,ip_count,visitor_count',
  32.             'gran'          => 'day',
  33.             'max_results'   => $day
  34.         ]
  35.     ];
  36.     try {
  37.         $json = doPost($url, array(
  38.             'headers' => $headers,
  39.             'body' => json_encode($data_body),
  40.             'timeout' => 30,
  41.         ));
  42.         $json = json_decode($json);
  43.     } catch (\Exception $e) {
  44.         echo array('error' => 1, 'msg' => $e->getMessage());
  45.         exit();
  46.     }
  47.     zeo_ajax_die($json);
  48. }
  49. add_action('wp_ajax_get_baidu_analyse', 'zeo_get_baidu_analyse'); //管理员调用
复制代码
  1. function zeo_ajax_die($data, $code = 0)
  2. {
  3.     $json['code'] = $data->code;
  4.     $json['data'] = $data->body;
  5.     wp_die(json_encode($json));
  6. }
复制代码
最后就是创建WordPress仪表盘,并显示数据了,代码如下:

  1. function zeo_add_dashboard_widgets()
  2. {
  3.     wp_add_dashboard_widget('custom_help_widget', '百度统计数据', 'zeo_baidu_analyse_form');
  4. }
  5. add_action('wp_dashboard_setup', 'zeo_add_dashboard_widgets');

  6. function zeo_baidu_analyse_form()
  7. {
  8.     $html_s = '
  9.     <table class="zeo-bd-table"><thead><tr><th>日期</th><th>浏览量</th><th>访客数</th><th>IP 数</th></tr></thead>
  10.       <tr><td>今日</td><td class="nowt-uv"></td><td class="nowt-pv"></td><td class="nowt-ip"></td></tr>
  11.       <tr><td>昨日</td><td class="yest-uv"></td><td class="yest-pv"></td><td class="yest-ip"></td></tr>
  12.     </table>';
  13.     $script_s = '<script type="text/javascript">
  14.         (function ($, window, document) {
  15.             var data = {action: "get_baidu_analyse"}
  16.             $.post("' . AJAX_URL . '", data, function (data) {
  17.                 var obj = JSON.parse(data);
  18.                 if(obj.code == 200){
  19.                     
  20.                     var yest = obj.data.body.data[0].result.items[1][0];
  21.                     var nowt = obj.data.body.data[0].result.items[1][1];
  22.                     $(".nowt-uv").text(nowt[0]);
  23.                     $(".nowt-pv").text(nowt[1]);
  24.                     $(".nowt-ip").text(nowt[2]);

  25.                     $(".yest-uv").text(yest[0]);
  26.                     $(".yest-pv").text(yest[1]);
  27.                     $(".yest-ip").text(yest[2]);
  28.                 }else{
  29.                     $(".nowt-uv").text("0");
  30.                     $(".nowt-pv").text("0");
  31.                     $(".nowt-ip").text("0");

  32.                     $(".yest-uv").text("0");
  33.                     $(".yest-pv").text("0");
  34.                     $(".yest-ip").text("0");
  35.                 }
  36.                });
  37.            
  38.         })(jQuery, window, document);
  39.         </script>';
  40.     echo $html_s;
  41.     echo $script_s;
  42. }
复制代码


温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
----------------------------------------------------------------------------------------------------------------------------
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。
版权声明:未标注转载均为本站原创,转载时请以链接形式注明文章出处。如有侵权、不妥之处,请联系站长删除。敬请谅解!
回复

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

投诉/建议联系

jinqike1026@163.com

未经授权禁止转载,复制和建立镜像,
如有违反,追究法律责任
  • 关注公众号
  • 添加微信客服
Copyright © 2001-2024 金小颖论坛 版权所有 All Rights Reserved. |网站地图 浙ICP备2022006091号
关灯 快速发帖
扫一扫添加微信客服
返回顶部
快速回复 返回顶部 返回列表