TA的每日心情 | 衰 5 小时前 |
---|
签到天数: 427 天 [LV.9]以坛为家II
管理员|UID:1
|
做网站肯定要了解相关网站数据,有时候懒得登陆查看,例如一些PV/UV/IP等数据,那么我们可以直接使用百度统计的api,在WordPress的后台仪表盘进行一个简单的显示,这里为大家整理了一些函数,大家直接放在主题的functions.php文件中即可。并且全局AJAX调用,也不会拖慢后台的速度
显示效果如下:
实现方式如下:
首先需要使用到WordPress使用wp_remote_get和wp_remote_post进行get和post请求,并封装为函数:
具体方法大家自行百度
这里需要调用其doPost方法
- function zeo_get_baidu_analyse()
- {
- $url = 'https://api.baidu.com/json/tongji/v1/ReportService/getData'; //百度商业账号请求地址
- // 账户类型,默认1即可
- $type = '1';
- // 站点ID,可以提供地址栏拿到
- $siteId = 'xxx';
- // 登录百度统计的用户名
- $username = 'xxx';
- // 登录百度统计的密码
- $password = 'xxx';
- // Token 获取方式:https://tongji.baidu.com/web/help/article?id=129&type=0
- $toekn = _opz('baidu_tongji_token');
- //统计天数,维度,默认1
- $day = 1;
- $headers = array(
- 'Content-Type' => ' application/json'
- );
- $data_body = [
- 'header' => [
- 'account_type' => $type,
- 'username' => $username,
- 'password' => $password,
- 'token' => $toekn,
- ],
- 'body' => [
- 'siteId' => $siteId,
- 'method' => 'overview/getTimeTrendRpt',
- 'start_date' => date('Y-m-d', strtotime("-" . $day . " day")),
- 'end_date' => date('Y-m-d'),
- 'metrics' => 'pv_count,ip_count,visitor_count',
- 'gran' => 'day',
- 'max_results' => $day
- ]
- ];
- try {
- $json = doPost($url, array(
- 'headers' => $headers,
- 'body' => json_encode($data_body),
- 'timeout' => 30,
- ));
- $json = json_decode($json);
- } catch (\Exception $e) {
- echo array('error' => 1, 'msg' => $e->getMessage());
- exit();
- }
- zeo_ajax_die($json);
- }
- add_action('wp_ajax_get_baidu_analyse', 'zeo_get_baidu_analyse'); //管理员调用
复制代码- function zeo_ajax_die($data, $code = 0)
- {
- $json['code'] = $data->code;
- $json['data'] = $data->body;
- wp_die(json_encode($json));
- }
复制代码 最后就是创建WordPress仪表盘,并显示数据了,代码如下:
- function zeo_add_dashboard_widgets()
- {
- wp_add_dashboard_widget('custom_help_widget', '百度统计数据', 'zeo_baidu_analyse_form');
- }
- add_action('wp_dashboard_setup', 'zeo_add_dashboard_widgets');
- function zeo_baidu_analyse_form()
- {
- $html_s = '
- <table class="zeo-bd-table"><thead><tr><th>日期</th><th>浏览量</th><th>访客数</th><th>IP 数</th></tr></thead>
- <tr><td>今日</td><td class="nowt-uv"></td><td class="nowt-pv"></td><td class="nowt-ip"></td></tr>
- <tr><td>昨日</td><td class="yest-uv"></td><td class="yest-pv"></td><td class="yest-ip"></td></tr>
- </table>';
- $script_s = '<script type="text/javascript">
- (function ($, window, document) {
- var data = {action: "get_baidu_analyse"}
- $.post("' . AJAX_URL . '", data, function (data) {
- var obj = JSON.parse(data);
- if(obj.code == 200){
-
- var yest = obj.data.body.data[0].result.items[1][0];
- var nowt = obj.data.body.data[0].result.items[1][1];
- $(".nowt-uv").text(nowt[0]);
- $(".nowt-pv").text(nowt[1]);
- $(".nowt-ip").text(nowt[2]);
- $(".yest-uv").text(yest[0]);
- $(".yest-pv").text(yest[1]);
- $(".yest-ip").text(yest[2]);
- }else{
- $(".nowt-uv").text("0");
- $(".nowt-pv").text("0");
- $(".nowt-ip").text("0");
- $(".yest-uv").text("0");
- $(".yest-pv").text("0");
- $(".yest-ip").text("0");
- }
- });
-
- })(jQuery, window, document);
- </script>';
- echo $html_s;
- echo $script_s;
- }
复制代码
|
温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
----------------------------------------------------------------------------------------------------------------------------
文章采用: 《 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。
版权声明:未标注转载均为本站原创,转载时请以链接形式注明文章出处。如有侵权、不妥之处,请联系站长删除。敬请谅解!
|