挑战:构建一个WordPress管理仪表板,以有效地显示来自大约900个博客的Google Analytics数据,分布在25个多站点实例中。 关键是要克服处理如此大的数据集固有的性能障碍。
>>本文详细介绍了开发过程,突出了遇到的关键决策和挑战。 我们将探讨WordPress REST API,PHP与JavaScript辩论,生产环境限制,安全注意事项,数据库设计,甚至AI的作用。
键术语在潜水之前,让我们澄清一些术语:
- WordPress多站点:
一个核心WordPress功能,可以从单个安装中启用多个博客的管理。 博客共享核心文件和数据库,但具有单个媒体文件夹和博客特定的数据库表。 - > wordpress 多多站点:
一个用于管理WordPress多站点安装多个实例的术语。这种方法避免了在不同客户之间共享一个多站点的复杂性。 > > - 仪表板网站:托管用于查看汇总分析数据的自定义仪表板的站点。
-
客户端站点:
收集数据的25个WordPress多站点实例。 > 实施策略
>解决方案涉及在仪表板站点和所有25个客户端站点上安装的单个WordPress插件。 该插件具有两个主要功能:
- 通过客户端站点上的自定义API端点曝光数据。
- > >>从仪表板站点上的客户端站点删除数据,缓存并在仪表板上显示。
- wordpress rest api:基础> > WordPress REST API是该项目的核心。 它的可扩展性使创建自定义端点可以公开必要的数据。
代码代码段:API端点注册
>
php vs. javaScript:异步优势
<?php [...] function register(\WP_REST_Server $server) { $endpoints = $this->get(); foreach ($endpoints as $endpoint_slug => $endpoint) { register_rest_route( $endpoint['namespace'], $endpoint['route'], $endpoint['args'] ); } } // ... (rest of the endpoint definitions) ...最初,考虑了一种基于PHP的方法。但是,同步的PHP处理和服务器端执行时间限制使此不切实际。 JavaScript的异步功能提供了出色的解决方案,从而使所有站点都可以从所有站点进行数据检索。 JavaScript实现大大减少了数据检索时间:从估计的925秒(同步)到大约2秒(异步)。 但是,浏览器和服务器请求限制需要在请求之间延迟150毫秒。
代码段:异步数据获取
>
连接PHP和JavaScript
使用wp_localize_script()
>集成了PHP端点和JavaScript代码,无缝将端点URL和其他必要的数据传递给JavaScript。
通过用于API身份验证和CORS(交叉原始资源共享)标头的应用程序密码来解决安全性,以允许从仪表板站点到客户端站点的跨域请求。 遵循了最少特权的原则,仅限于CORS访问必要的终点。
代码段:CORS标头实现
<?php [...] function register(\WP_REST_Server $server) { $endpoints = $this->get(); foreach ($endpoints as $endpoint_slug => $endpoint) { register_rest_route( $endpoint['namespace'], $endpoint['route'], $endpoint['args'] ); } } // ... (rest of the endpoint definitions) ...
>数据库缓存 为了提高性能,使用关系数据库模型在仪表板站点的自定义数据库表中缓存数据。 数据库架构最初是使用DocBlocks设计的,然后在LLM的帮助下进行了完善。
代码段:数据库表创建SQL
>
async function getBlogsDetails(blogs) { let promises = []; blogs.forEach((blog, index) => { // ... (code for delayed fetch requests) ... }); // ... (code for Promise.all and error handling) ... }结果和未来的考虑
MVP功能性,为博客流量模式提供了宝贵的见解。 未来的改进可能包括使用现代JavaScript框架以及探索无服务器解决方案(例如AWS Lambda),以提高可扩展性和性能。 使用CRON作业进行预取用数据汇编也是一种潜在的增强。
>>本文提供了开发过程的高级概述。 遇到的具体挑战和解决方案为使用大规模WordPress多元化部署的开发人员提供了宝贵的见解。
以上是WordPress多宗教:一个案例研究的详细内容。更多信息请关注PHP中文网其他相关文章!

在本周的综述中:datepickers正在让键盘用户头痛,一个新的Web组件编译器,有助于与Fouc进行战斗,我们终于获得了造型列表项目标记,以及在您的网站上获得网络攻击的四个步骤。

在本周的Web平台新闻世界中,Google搜索控制台可以更轻松地查看爬行的标记,我们了解到自定义属性


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

禅工作室 13.0.1
功能强大的PHP集成开发环境

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具