我为什么离开 WordPress 并构建自定义 CMS
我使用 WordPress 多年,但最终花在维护平台上的时间比管理网站还多。插件依赖、页面构建器臃肿、性能变通方案、兼容性问题以及持续的安全维护,让原本简单的改动变成了反复出现的技术项目。
对于许多网站而言,WordPress 仍然可以是一个实用的选择。但对 AlexanderMirvis.com 来说,与其继续扩展和维护一系列第三方组件,构建一个专门定制的 CMS 变得更有吸引力。
简而言之:我想要一个轻量级的公开网站、一个简洁的管理区域、对架构的直接控制,以及对发布、SEO、媒体、重定向、AI 辅助内容和付费咨询的内置支持。
为什么 WordPress 对我来说成了问题
一个干净的 WordPress 安装可以很轻量。困难始于网站需要 SEO 控制、重定向、表单、安全、缓存、图像优化、支付及其他运营功能时。每项需求都可能引入另一个插件、配置界面、更新周期和潜在的兼容性问题。
最终,内容管理系统可能会变成依赖管理系统。正是在那时,WordPress 开始不再像一种工具,而更像一项反复出现的维护义务。
插件依赖与兼容性
WordPress 插件生态系统既是它最大的优势,也是它最复杂的问题之一。它提供了极其广泛的功能,但也可能让网站依赖由互不相关的开发者维护的软件。
一次 WordPress 更新可能会影响某个插件。一次 PHP 更新可能会暴露另一个兼容性问题。更换主题可能会改变布局。不更新也不是可持续的解决办法,尤其是在涉及安全修复时。
反复出现的问题变成了:这次更新会破坏什么?
页面构建器臃肿
Elementor、WPBakery、Divi、基于 Gutenberg 的构建器以及特定主题的系统等页面构建器,可以让视觉设计更容易。它们也可能为原本可以相对简单的布局生成大量标记、CSS、JavaScript、包装元素、配置数据和数据库内容。
我不希望一个标题、三个段落和一个按钮需要多层构建器特有的输出和配置。
性能变通方案
当 WordPress 网站变慢时,通常的应对方式往往是添加更多软件:缓存、优化、压缩、延迟 JavaScript、合并 CSS、图像处理或 CDN 集成。这些工具可以提供帮助,但当某项优化破坏网站的一部分时,它们也会带来额外的设置和例外情况。
我到了这样一个阶段:需要配置软件来弥补其他软件所带来的性能成本。我希望面向公众的网站从设计上就保持快速和简单。
持续的安全维护
WordPress 使用广泛,因此其安装实例是自动化攻击的常见目标。WordPress 核心、主题、插件、废弃组件、上传处理程序、XML-RPC、管理账户和数据库访问都可能需要关注。
WordPress 可以得到妥善保护,但这项工作不会在初始设置后停止。主题和插件的集合越庞大,需要监控的代码和更新活动就越多。
我改为构建了什么
我为 AlexanderMirvis.com 构建了一个自定义 CMS。它并非旨在支持所有可能的网站类型,而是围绕该网站实际需要的发布和管理功能设计。
该系统管理:
- 页面和出版内容
- 分类、子分类、标签和导航
- 媒体、特色图像和内嵌图像
- 元数据、结构化数据、站点地图和索引控制
- 友好 URL 和重定向
- 用户、权限、修订版本、草稿和定时发布
- 在受控权限下运行的自定义插件
- OpenAI 辅助的内容和 SEO 工作流
- Stripe 支付和付费咨询
因为我掌控整个架构,公开网站可以保持轻量,而管理功能则保留在 CMS 后台。
快速、简单的主页
主页经过有意设计,以保持快速和直观。它不需要页面构建器在每次有人访问时计算多层布局配置。CMS 负责管理内容和后台,而无需让公开主页承载不必要的构建器功能。
受控的可扩展性
插件本身并不是问题。失去对依赖链的控制才是问题。
我的 CMS 会在适当情况下支持自定义插件,但代码库、权限和管理访问都由我控制。插件管理仅限于适当的管理级别。AI 辅助内容工具也与可执行服务器代码分离,因此 OpenAI 无法重写 PHP 文件或修改身份验证系统。
发布与内容管理
页面管理
在 CMS 中,我可以创建草稿、发布或定时发布页面、将内容设为私密、更改标题、编辑友好 URL、上传特色图像、插入内嵌媒体、直接编辑 HTML,并维护修订历史记录。
每个页面也都有自己的 SEO 设置,因此不再需要仅为编辑元数据而安装单独的插件。
带有分类和子分类的出版内容
文章整理在出版内容归档中。CMS 支持分类和子分类,从而可以建立如下清晰结构:
/publications/technology/cybersecurity/article-title/
出版内容支持分类、子分类、标签、摘要、特色图像、发布日期、草稿、私密状态、定时发布、内嵌媒体、修订历史记录以及可编辑的友好 URL。
如果出版内容的 URL 发生变化,CMS 可以通过 301 重定向保留之前的位置。
媒体库
内置媒体系统让我可以上传并重复使用图像、指定特色图像、将媒体插入页面和出版内容,并提供适当的替代文本。
我成功构建了一个图像上传器,而且没有把它变成一堆升级通知和月度订阅。
导航、侧边栏和小工具
导航独立于内容层级进行管理。我可以添加、删除和重新排列菜单项;链接到内部页面或出版内容;以及创建外部链接。CMS 还包含侧边栏和小工具功能,可用于可复用的网站组件。
修订版本、定时发布和发布控制
修订历史记录、定时发布、草稿管理、私密内容、发布日期、分类、子分类、标签和特色图像都属于同一个系统。这些正是我所需的内容管理功能,没有附加与之无关的功能。
内置 SEO 和重定向
我的主要目标之一,是让 SEO 成为 CMS 架构的一部分,而不是日后通过大型插件添加的东西。
每个页面和出版内容都支持:
- 自定义 SEO 标题和元描述
- 焦点关键词或关键短语
- 可编辑的别名和规范 URL
- index 和 noindex 控制
- follow 和 nofollow 指令
- Open Graph 元数据和社交图像
- 结构化数据
- 搜索结果预览
CMS 还管理友好 URL、robots.txt、XML 站点地图和重定向。当页面或出版内容移动时,系统可以保留其之前的友好 URL。
CMS 内部的 OpenAI 集成
OpenAI 直接集成到了编辑工作流中。我不需要将文章复制到另一个工具中,再把建议复制回来,然后将相同的信息输入一个单独的 SEO 插件。
页面级 SEO 分析
每个页面和出版内容都可以运行由 OpenAI 驱动的分析,涵盖搜索意图、关键词定位、标题、可读性、内容深度、元数据、结构和其他优化机会。
元数据生成
OpenAI 可以根据页面内容推荐 SEO 标题、元描述、焦点关键词、摘要、标签和友好 URL。
内容改进
系统可以针对标题、各级标题、引言、段落结构、内部组织、关键词定位、元数据、标签、摘要和 URL 提出改进建议。随后可以在 CMS 编辑器中应用建议的更改。
自然语言编辑命令
CMS 还包含一个通用 AI 命令界面。例如,我可以提出以下请求:
针对纽约的网络安全咨询优化这篇文章。改进引言,重写 H2 标题,创建更有力的 SEO 标题和元描述,建议相关标签,并改进 URL。
CMS 已经可以访问页面内容,从而减少了在多个工具之间复制和粘贴的需要。
全站 AI SEO 分析
全站 AI SEO 中心可以审查更广泛的内容清单,而不是每次只分析一个页面。它可以识别薄弱的标题、缺失的描述、重复的元数据、内容单薄、关键词重叠、搜索意图冲突、潜在的关键词蚕食以及其他优化机会。
这有助于找出可能彼此竞争的页面,并识别值得优先关注的内容。
Stripe 与付费咨询
Stripe 直接集成到了 CMS 中。Stripe API 凭据、定价、货币、Webhook 验证和咨询状态都从管理区域进行管理。
我当前的设置可以要求为一次咨询支付 $20。CMS 会在服务器端验证付款,之后才能查看消息。
付费咨询会显示在 CMS 管理系统中。未付款的提交内容会保持锁定,而已完成的 Stripe 付款会经过验证,之后才会解锁咨询内容。
这样就无需为一个工作流组合单独的联系表单、支付、Webhook 和集成插件。
安全与管理
我希望安全性从一开始就被设计进架构,而不是事后通过另一组插件添加。
CMS 包括:
- 预处理数据库语句
- CSRF 防护
- 安全的密码哈希
- 受控会话
- 经过 MIME 验证的上传
- 阻止上传可执行文件
- 受保护的配置文件
- 基于环境的密钥
- 安全响应头
- Stripe Webhook 签名验证
- 将 AI 内容权限与可执行服务器代码分离
OpenAI 可以协助处理内容、元数据、SEO 和结构化 CMS 操作。它不能在凌晨 3:00 突然决定 config.php 需要一次创意重写。
响应式管理界面
管理界面基于 Bootstrap,并可响应式适配台式机、笔记本电脑、平板电脑和移动设备。我希望它感觉像一个专注的应用程序,而不是一个被插件通知和升级提示占据的仪表板。
WordPress 仍然有用吗?
是的。WordPress 依然有用、受到广泛支持,并且对许多企业而言是合理的选择。它可以快速上线网站,许多开发者都熟悉它,而且几乎每一种常见需求都有可用的插件。
但对我来说,维护其周边生态系统最终比构建我所需的功能更令人沮丧。我想要速度、架构控制、简洁的 URL、结构化出版内容、媒体管理、内置 SEO、重定向、Stripe、受控插件以及直接的 OpenAI 集成。
AlexanderMirvis.com 现在运行在一个围绕这些需求设计的 CMS 上,不再有 WordPress 插件轮盘赌、页面构建器开销,也不再反复安装软件来弥补其他软件的问题。
没错,它确实很快。当一个网站不必走到哪里都拖着相当于搬家卡车的数字负担时,它自然可以运行得很快。

评论
发表评论
No account is required. Your email address is required for payment/moderation records but is never displayed publicly. Comments are not eligible for approval until the $5.00 Stripe payment is verified, and payment does not guarantee approval.