4.1.0 主题设置页加访问统计面板,接百度统计 API 直出后台 #33

新增 inc/theme-stat.php(约 1814 行),把百度统计的数据直接显示在
主题设置页,不用再跳去百度后台看。

主要设计决策:
- 凭据(API Key / Secret / refresh_token)存 wp-content/uploads/ 下
  独立文件(0600),不写 options 表、不在表单回显 —— 换主题/升级不丢
- 13 个指标全部实现,用户可在「面板显示哪些指标」里各别开关
  (每次 API 调用都占配额,只看几个数字的可以关掉其余)
- 面板走 AJAX 懒加载「先出壳、后取数」:同步渲染 8 个请求 ×5 秒超时
  会让设置页最坏卡 40 秒
- 缓存成功 1800 秒 / 失败 300 秒:接口挂了不至于每次刷新都等超时
- "--"(百度接口的"无数据")渲染成破折号,不转成 0 —— 否则
  "暂无数据"会被显示成"0 次访问"
- footer.php 的统计代码外面加埋点开关,关掉不停用代码本身

改动:
- inc/theme-stat.php   新建
- inc/theme-options.php 新增 8 个控件
- footer.php           统计代码套埋点开关
- functions.php        require 新模块
- style.css            版本号 4.0.0 → 4.1.0

验证:
- php -l 全量 98 文件 0 失败
- 正向判据 145/0,反证 19 组全抓到
- 真实接口连通性 10/0(OAuth 401 与 error_code 110 两种错误格式实测)
- 打包自检 82/0,其反证 15 组全抓到
This commit is contained in:
2026-10-28 16:33:41 +08:00
parent 05b4b56bf6
commit c125388ab7
5 changed files with 1938 additions and 3 deletions
+7 -1
View File
@@ -55,7 +55,13 @@
if (kratos_option('s_gov')) {
echo '<p><a href="' . kratos_option('s_gov_link', '#') . '" target="_blank" rel="nofollow" ><i class="police-ico"></i>' . kratos_option('s_gov') . '</a></p>';
}
if (kratos_option('seo_statistical')) {echo '<p>' . kratos_option('seo_statistical') . '</p>';}
/* 统计脚本:内容由用户在「收录与统计 → 统计代码」里填,
开关由「埋点开关」控制(见 inc/theme-stat.php)。
开关与代码分离,是为了让"临时停掉统计"不必删代码 ——
删了之后想恢复就得重新去百度后台找那串 hash。 */
if (yang_stat_tracking_enabled() && kratos_option('seo_statistical')) {
echo '<p>' . kratos_option('seo_statistical') . '</p>';
}
/* 国旗:勾了「是否添加国旗」才显示。以前 src 直接取选项,
用户没上传地址就得到 <img src="">,页面上是一个破图图标。
逻辑抽到 yang_flag_block() 里,测试能直接测同一个函数,