前几天研究了下百度统计的API,为了方便查看网站数据,而不用每次都登录百度统计去看,将百度统计数据加入wordpress仪表盘是个不错的选择,下面一起来看看如何实现,学习本文你需要掌握以下知识点。
- WordPress仪表盘调用站外文章列表实现代码
- 百度统计API简单使用——获取网站概况
- 基本PHP语法
- wordpress内置http请求用法
先看实现效果
最近有人刷我CDN流量,所以数据比较大。只取了一点数据,更多数据自己学了教程添加即可。
代码如下:
复制
//WordPress仪表盘添加百度统计数据显示 //https://www.daimadog.org/6821.html function dmd_add_dashboard_widgets() { wp_add_dashboard_widget('custom_help_widget', '百度统计', 'bdtj_dashboard_dmd'); } add_action('wp_dashboard_setup', 'dmd_add_dashboard_widgets' ); function bdtj_dashboard_dmd() { $body = array('header'=>array( 'username' => '百度统计账户', 'password' => '百度统计密码', 'token'=>'百度统计token', 'account_type'=>1 ),'body'=>array( 'site_id'=>'站点ID', 'start_date'=>date("Y-m-d",strtotime("-1 day")), 'end_date'=>date("Y-m-d"), 'metrics'=>'pv_count,visitor_count,ip_count', 'method'=>'overview/getTimeTrendRpt' )); $url='https://api.baidu.com/json/tongji/v1/ReportService/getData';//百度商业账号请求地址 $request = new WP_Http; $result = $request->request( $url, array( 'method' => 'POST', 'body' => json_encode($body)) ); $rst=json_decode($result['body']); $yest=$rst->body->data[0]->result->items[1][0]; $nowt=$rst->body->data[0]->result->items[1][1]; echo '日期    浏览量    访客数    IP数'; echo '</br>'; echo '今日:    '; for($i=0;$i<count($nowt);$i++){ echo $nowt[$i]; echo '    '; } echo '</br>'; echo '昨日:    '; for($i=0;$i<count($yest);$i++){ echo $yest[$i]; echo '    '; } }
实现过于简单,我都不知道说什么了,请求过程前面的教程已经讲过了,这里主要是将请求结果解析出来。其中使用了wordpress自带的http请求类,没有使用curl提交post请求。
没什么讲的,有问题留言。
2023-04-23更新
百度统计升级了接口,请使用下面的代码。
复制
//WordPress仪表盘添加百度统计数据显示 //https://www.daimadog.org/6821.html function dmd_add_dashboard_widgets() { wp_add_dashboard_widget('custom_help_widget', '百度统计', 'bdtj_dashboard_dmd'); } add_action('wp_dashboard_setup', 'dmd_add_dashboard_widgets' ); function bdtj_dashboard_dmd() { $body = array('header'=>array( 'userName' => '你的百度统计用户名', 'accessToken'=>'百度统计——数据管理——数据api菜单中获得' ),'body'=>array( 'site_id'=>'你的站点id', 'start_date'=>date("Y-m-d",strtotime("-1 day")), 'end_date'=>date("Y-m-d"), 'metrics'=>'pv_count,visitor_count,ip_count', 'method'=>'overview/getTimeTrendRpt' )); $url='https://api.baidu.com/json/tongji/v1/ReportService/getData';//百度商业账号请求地址 $request = new WP_Http; $result = $request->request( $url, array( 'method' => 'POST', 'body' => json_encode($body)) ); $rst=json_decode($result['body']); $yest=$rst->body->data[0]->result->items[1][0]; $nowt=$rst->body->data[0]->result->items[1][1]; echo '日期    浏览量    访客数    IP数'; echo '</br>'; echo '今日:    '; for($i=0;$i<count($nowt);$i++){ echo $nowt[$i]; echo '    '; } echo '</br>'; echo '昨日:    '; for($i=0;$i<count($yest);$i++){ echo $yest[$i]; echo '    '; } }
注意:新版的accessToken有效期仅30天,如果需要自动获得accessToken,需要注册百度营销开发者,通过api自动获得。
评论 (7)
日期 浏览量 访客数 IP数
今日:
Warning: count(): Parameter must be an array or an object that implements Countable in for($i=0;$i<count($nowt);$i++){
echo $nowt[$i];
昨日:
Warning: count(): Parameter must be an array or an object that implements Countable in for($i=0;$i<count($yest);$i++){
echo $nowt[$i];
是什么原因呢?