问题
想使用 Claude 的意大利语用户会发现,大多数指南都是英文的,而且散落在各处。这个网站需要按职业分类,汇集意大利语的实用指南、提示词、教程和对比评测。除了文章之外,它还需要提供系统化的教学、为学习成果颁发认证,并让开发者出售现成的 Claude 项目。
我做了什么
我开发了一个定制 WordPress 主题,把 ClaudeItalia.it 打造成一个意大利语的 Claude 学习中心,包含课程、认证和交易市场。
- 结构化内容:6 种内容类型(指南、提示词、教程、对比评测、项目和视频),配有主题和职业分类法、阅读时间和难度等级。一个大型菜单(mega menu)汇总了 12 个职业类别,律师或教师都能最先找到适合自己的资料。
- 考试认证:从 A1 到 C2 分级的课程项目和题库。题目和答案顺序随机,每道题都有计时器,切换标签页会弹出警告。通过考试即颁发证书,附有唯一编码和用于验证的二维码;证书可以被撤销。
- 课程:每条学习路径都有模块、课程内容、常见问题和聊天功能。学员上传项目,由老师按 0 到 100 分评分并给出反馈。
- 开发者市场:开发者在自己的前台区域发布项目。销售通过 Stripe Checkout 完成,收款采用 Stripe Connect Express 入驻流程,平台默认抽成 30%。发票按意大利电子发票格式 FatturaPA 1.2.2 生成 XML,并通过 Aruba API 发送。
- 社交发布:内容可发布到 Facebook 主页、LinkedIn 公司主页和 X,使用 OAuth 2.0 并自动续期令牌。每篇帖子都会生成短链接和建议推文。
- 网站运营:实时访客、单篇文章浏览量、带 ads.txt 编辑器的 AdSense 广告位、WebP 图片转换、在 Yoast 基础上增加的 JSON-LD 结构化数据、Google 登录,以及与团队沟通的站内聊天。
技术栈
用 PHP 编写的定制 WordPress 主题,并使用自定义 MySQL 表保存考试记录、证书、销售和付款数据。前端使用原生 JavaScript。支付使用 Stripe,电子发票使用 Aruba API,OAuth 对接 Google、Meta、LinkedIn 和 X,另有 RSS 订阅源管理和一个 OpenAI 辅助工具。一个必用插件(must-use plugin)在 cPanel 主机上设置缓存头。
为什么这样做
统计实时访客时,我没有计算服务器请求数。页面都有缓存,按请求计数会漏掉大部分访问。我的做法是在每个页面放一段小脚本,每 30 秒通过 AJAX 发送一次 ping,即使在缓存页面上也能正常工作。为保护隐私,IP 地址只以哈希形式保存,访客令牌保存在浏览器的本地存储中,而不是使用跟踪 Cookie,旧记录每天都会清理。


