一、插件简介
WP Search Analytics 是一款专为 WordPress 网站设计的搜索关键词统计与分析插件。它能帮助网站管理员深入了解访客的搜索行为,通过直观的数据可视化、详细的搜索词记录和强大的分析功能,轻松掌握用户最关心的内容,从而优化网站内容策略,提升用户体验。
插件基于 WordPress 标准开发规范构建,轻量、高效,与绝大多数主题和插件兼容,无需修改主题文件即可自动追踪所有原生搜索请求。
二、主要功能
1. 全面的搜索数据统计
-
总搜索次数:记录全站所有搜索请求的总次数。
-
唯一搜索词:统计不同关键词的独立数量,反映用户需求的广度。
-
今日搜索量:实时展示当天的搜索活跃度,方便监控突发流量。
2. 趋势图表分析
-
可视化趋势图:使用 Chart.js 绘制搜索量随时间变化的折线图。
-
多时间维度:支持按 7天 / 30天 / 90天 / 1年 快速切换,直观了解搜索高峰期和低谷期。
3. 热门搜索词排行
-
按搜索次数排序:列出最受欢迎的关键词。
-
显示最后搜索时间:了解每个关键词的最近活跃情况。
-
结果状态标识:清晰标注每个关键词是否搜索到内容,以及平均搜索结果数量。
-
关键词筛选:支持快速搜索特定关键词,方便定位分析。
4. 数据管理工具
-
导出 CSV:一键导出所有关键词的统计数据(搜索次数、平均结果数、最后搜索时间),便于离线分析或制作报表。
-
清理旧数据:可自定义天数(如 90 天),删除过旧的搜索记录,保持数据库轻量和高效。
5. 美观的仪表盘
-
后台仪表盘小工具:在 WordPress 首页概览核心指标(总搜索、唯一词、今日搜索)。
-
独立管理页面:提供完整的统计面板,包含卡片指标、趋势图、关键词列表,界面清爽,适配移动设备。
三、技术架构概览
1. 文件目录结构
wp-search-analytics/
├── wp-search-analytics.php # 主插件文件(定义常量、激活钩子、加载类)
├── uninstall.php # 卸载时删除数据库表
├── includes/
│ ├── class-database.php # 数据库操作(建表、增删查改、统计查询)
│ ├── class-search-tracker.php # 搜索追踪(拦截搜索、写入记录、AJAX追踪)
│ ├── class-admin.php # 管理界面(菜单、页面渲染、仪表盘小工具、导出/清理)
│ └── class-ajax-handler.php # AJAX请求处理(趋势数据、热门词列表)
├── templates/
│ └── admin-page.php # 管理页面模板(HTML结构)
└── assets/
├── css/
│ └── admin.css # 管理后台样式
└── js/
└── admin.js # 管理后台脚本(Chart.js图表、AJAX交互)
2. 核心类设计
| 类名 | 职责 | 关键方法 |
|---|---|---|
WPSA_Database |
数据库操作 | create_tables()、insert_search()、get_total_searches()、get_trend_data()、get_popular_terms()、clean_old_data()、export_all_data() |
WPSA_Search_Tracker |
搜索事件追踪 | init() 注册钩子、track_on_wp() 捕获原生搜索、track_ajax_search() 支持 AJAX 搜索 |
WPSA_Admin |
后台管理界面与工具 | add_admin_menu()、enqueue_assets()、render_dashboard()、handle_clean_old_data()、handle_export_csv() |
WPSA_Ajax_Handler |
AJAX 接口 | get_trend_data()、get_popular_terms() |
3. 数据库设计
采用两张表,以平衡实时写入和查询性能:
主表 wp_search_analytics
存储每一条搜索记录,用于明细查询和实时统计。
| 字段 | 类型 | 说明 |
|---|---|---|
id |
BIGINT | 自增主键 |
search_term |
VARCHAR(255) | 用户输入的关键词 |
search_term_hash |
VARCHAR(64) | 关键词的 SHA256 哈希,用于快速去重统计 |
result_count |
INT | 搜索结果数量(0 表示无结果) |
user_id |
BIGINT | 用户 ID(0 为访客) |
user_ip |
VARCHAR(45) | 用户 IP(可选,用于分析) |
user_agent |
TEXT | 浏览器 UA |
referer |
VARCHAR(500) | 来源页面 |
search_date |
DATETIME | 搜索时间(默认当前) |
索引:search_term_hash、search_date、result_count 确保查询效率。
汇总表 wp_search_analytics_daily
按“关键词 + 日期”聚合,提高趋势分析和排行榜查询速度。
| 字段 | 类型 | 说明 |
|---|---|---|
id |
BIGINT | 自增主键 |
search_term |
VARCHAR(255) | 关键词原文(用于展示) |
search_term_hash |
VARCHAR(64) | 哈希 |
search_date |
DATE | 统计日期 |
total_searches |
INT | 当日搜索次数 |
total_results |
INT | 当日搜索结果总数(用于计算平均) |
last_search_time |
DATETIME | 当日最后一次搜索时间 |
唯一索引:(search_term_hash, search_date) 避免重复汇总。
4. 关键钩子与流程
搜索追踪流程
-
原生搜索:插件监听
wp钩子,在页面加载时检查是否为搜索页面,获取get_search_query()和全局$wp_query->found_posts,然后调用WPSA_Database::insert_search()写入数据库。 -
AJAX 搜索:主题若使用 AJAX 搜索,可通过调用
wp_ajax_nopriv_wpsa_track_ajax_search和wp_ajax_wpsa_track_ajax_search接口,传递search_term和result_count参数(同时携带 nonce 安全校验)。
管理界面数据加载
-
仪表盘页面加载时,通过 PHP 直接查询数据库获取总搜索数、唯一词数、今日搜索量。
-
趋势图和热门词列表则通过前端 AJAX 异步加载,避免页面阻塞。图表使用 Chart.js 渲染,切换时间段时重新请求数据。
数据清理与导出
-
清理操作通过
admin_post_wpsa_clean_old_data处理,根据指定天数删除主表中的旧记录(汇总表通过触发器或定期重建,当前版本暂不清理汇总表,未来可扩展)。 -
导出功能直接生成 CSV 文件,通过 HTTP 流式下载。
5. 安全与性能优化
-
权限控制:所有管理功能仅限
manage_options权限用户(管理员)。 -
Nonce 校验:所有 AJAX 和表单提交均使用 WordPress Nonce 防止 CSRF。
-
SQL 注入防护:所有数据库查询均使用
$wpdb->prepare参数化查询。 -
哈希索引:使用
search_term_hash作为去重和统计依据,避免长文本索引性能问题。 -
汇总表:利用每日汇总表减少趋势查询的实时计算开销,支持高并发站点。
-
异步写入(可选):当前为同步写入,若担心性能可扩展为
wp_schedule_single_event异步处理。
6. 兼容性与依赖
-
WordPress:要求 5.0 及以上版本(推荐 6.0+)。
-
PHP:7.4 及以上(已测试 8.0、8.1、8.2)。
-
JavaScript:依赖 Chart.js v4.4.0(通过 CDN 或本地文件),以及 jQuery(WordPress 内置)。
-
数据库:MySQL 5.7 或 MariaDB 10.2+,支持 InnoDB 和 utf8mb4。
7. 扩展性与未来规划
-
预留钩子:可在
WPSA_Search_Tracker::track_on_wp()中插入do_action以便其他插件扩展。 -
统计维度扩展:可增加按分类、标签、作者等过滤搜索记录。
-
缓存机制:未来可引入对象缓存(Transient API)缓存热门词和趋势数据。
-
隐私增强:可添加 IP 匿名化选项,符合 GDPR 要求。
四、数据流程图
五、部署与使用建议
-
上传安装:通过 WordPress 后台插件上传功能或 FTP 上传至
/wp-content/plugins/。 -
激活:激活后自动创建数据库表。
-
配置:无需额外配置,开箱即用。
-
数据查看:后台左侧菜单“搜索分析”进入仪表盘,也可在首页仪表盘小工具中快速浏览。
-
数据维护:建议定期清理旧数据(如每季度),或通过“数据管理”子菜单手动清理;导出 CSV 可用于外部报表工具。
六、总结
WP Search Analytics 以简洁、高效、功能完备为设计目标,为 WordPress 站长提供了专业级的搜索行为分析工具。其技术选型注重性能与可维护性,同时保持了良好的扩展潜力,能够满足从个人博客到企业站点的分析需求。
如果您有任何定制需求或建议,欢迎与我们联系,我们将持续迭代优化。
七、下载
我用夸克网盘给你分享了「wp-search-analytics.zip」,点击链接或复制整段内容,打开「夸克网盘APP」即可获取。
/~d38d3ZaY4c~:/
链接:https://pan.quark.cn/s/7d05f163a45a