迁移

将 WordPress 插件从付费地理编码 API 迁移出来

调用地理编码 API 的 WordPress 插件,无论是门店查找工具、配送区域检查工具还是房源地图,通常都是这样构建的:在设置页面中填入某个特定服务商的密钥一次,然后在插件需要位置查询的所有地方使用它。这个单一的设置字段对网站所有者来说很方便,但这也意味着地理编码服务商在插件代码中嵌入的程度,往往比粗看设置页面时所想的更深。

首先要弄清楚的是,您要迁移的是自己维护的插件,还是只做配置的第三方插件。这两种情况确实不同:

如果您维护该插件,迁移就是一次普通的代码修改:找出所有调用地理编码 API 的函数(在插件代码库中搜索服务商的主机名或其特定的密钥参数名,通常是定位所有调用位置的最快方法),并更新这些函数,让它们使用新密钥调用新主机。由于这里天然使用 PHP,而 My Geocode 的兼容主机会完全复现一家熟悉服务商的响应结构,如果插件现有代码已经在解析该服务商的特定格式,那么通常只需更新请求主机和身份验证,而不必改动响应解析逻辑。身份验证支持 X-API-Key 请求头、Authorization: Bearer、HTTP Basic 认证或查询参数,因此插件目前发送密钥的任何方式都有直接对应的方式。

如果您只是配置第三方插件,您的选择完全取决于插件设置页面开放了哪些选项。有些插件允许在密钥旁边配置自定义 API 端点,这种情况下,如果插件最初所针对的服务商有对应的兼容主机,把该设置指向这个兼容主机,可能完全无需修改代码就能工作,因为从插件的角度看,它仍在与结构相同的 API 通信。另一些插件把服务商的主机名完全写死,这种情况下,您的选择仅限于联系插件开发者、寻找增加了灵活性的分支版本或更新,或者对于关键依赖,在插件许可证允许的情况下考虑做少量自定义修改。

无论哪种情况,都有几点实用建议:

  • 任何修改都先在网站的预发布副本上测试,绝不要直接在线上 WordPress 安装中测试,因为与线上数据库交互的插件代码,比其他地方孤立的代码修改风险更大
  • 检查插件是否在自己的数据库表中缓存地理编码结果,因为更换服务商后,可能需要在代码修改之外单独清除或重新验证该缓存
  • 确认插件的错误处理能妥善应对意外的响应结构,因为 WordPress 网站因 API 响应不匹配而向访客显示原始 PHP 错误,比地理编码功能短暂不显示的后果更糟

对于依靠单个插件实现门店查找或类似功能的小企业网站来说,每日免费配额(完全不用密钥 2,500 次请求,或每个账户每天 2,500 次,由其所有密钥共享)通常足以覆盖典型小网站产生的流量。在认定必须购买付费方案之前,值得先用网站实际的访客量和查询量核对一下。