无头 WordPress:完整指南
已发表: 2023-03-01您可能已经知道,WordPress 是一个强大的网站创建平台。 作为内容管理系统 (CMS),WordPress 提供易于使用的发布功能。 而且您可以扩展 WordPress 来做几乎任何您想做的事情。 但是你听说过“无头”WordPress 吗?
在本指南中,您将确切了解什么是无头 WordPress。 您将了解可能导致您使用它的情况,以及使用无头 WordPress 的时候并不是最好的主意。 除此之外,我们还将了解一些最流行的前端和堆栈解决方案,这些解决方案通常用于无头 WordPress 部署。
在深入了解 WordPress 作为无头 CMS 之前,首先了解 CMS 到底是什么以及它旨在解决的问题是很重要的。 什么会使一个人“无头”,为什么这在某些情况下有用? 谁会觉得它有用?
什么是内容管理系统 (CMS)?
服务器端内容管理系统或 CMS 主导着您今天浏览的绝大多数网站的“后端”。 在 Internet 的早期,所有站点都是直接从静态 HTML 页面构建的。 要创建新的帖子或文章,您必须创建一个全新的 HTML 文档。 然后,您可以将它连同其资产(如图像、其他媒体和 CSS 文件)一起添加到服务器。 然后,您需要在站点导航中链接到新页面以及引用它的其他页面。
内容管理系统之前的内容管理
大约 1995-2000 年的网站开发可能效率低得令人难以置信。 每当您有新内容时创建和上传新文件都相对容易。 但新内容不可避免地要求对旧内容进行更改。 随着站点增长到包含成百上千个页面,快速进行更改作为手动过程是不可能的。 即使有一些自动化,它也可能很慢。
演示和内容混合在一起
一个相关的问题是内容及其表示(例如,布局和设计样式)是不灵活的,并且经常在 HTML 文档中混合在一起。 CSS 必须发挥作用才能真正解决这个问题,但需要 CMS 通过将设计与内容分开来利用它。
工作流程和角色是混合的
围绕网站的功能、交互部分对内容和设计进行全局更改的难度使得发布和维护内容变得非常缓慢且具有挑战性。 负责内容、前端设计和后端工程的团队也没有明确的界限。
动态的、数据库驱动的 CMS 解决方案
内容管理系统是围绕这个想法诞生的:不是每次需要一个新网页时都创建全新的 HTML 文件,每个页面的所有内容都将存储在 MySQL 等关系数据库中。 然后,用 PHP 等服务器端脚本语言编写的 CMS 将用于在动态生成的页面上查询和包含来自数据库的可变内容片段。 来自访问者的每个页面请求都可能导致为他们生成所请求内容的新的和唯一的版本。
动态 CMS 的局限性
WordPress 使用以 PHP 和 HTML 混合编写的设计模板来生成最终的 HTML 文档,以在每个页面请求时提供给访问者。 与使用 CMS 发布动态页面的便捷性相比,很难相信基于静态文件的 Web 发布有什么用处——除非您考虑大规模的安全性和性能,无论是否使用几乎在每次页面加载时都会查询的数据库。
无头作为一种混合方法——两全其美
Headless 是一种混合方法,用于从前端框架中的大部分静态资产提供网页。 该前端仅在绝对必要时使用后端的 CMS 和数据库来获取动态内容或接收用户输入。 这允许可以为访问者“动态”呈现的页面,并在不需要经常更改时进行缓存。
无头 WordPress 和其他无头内容管理系统
Headless WordPress 是一种部署 WordPress 的方式,其后端与通常的前端功能分离。 没有使用主题。 后端只负责:
- 数据库管理
- 用户管理
- 内容管理
- 与外部服务交互
前端表示层通常由 React.js 或其他基于 JavaScript 的前端和 HTML/CSS 框架组成。 内容是通过 API 从后端收集的,例如 WP GraphQL(GraphQL 的 WordPress 实现)或 WordPress 核心 REST API。
也可能有多个前端处理访问者可能使用的不同设备的不同渠道。 此外,不需要前端与后端共享同一台服务器。 这是高效全渠道发布所需的基础设施。 全渠道让您可以为移动应用程序和物联网中的各种设备提供独特的内容。
有很多用于构建无头网站的流行开源静态站点生成器,例如 Hugo 和 Jekyll。 这些是完全平面文件系统,没有 WordPress 在无头或传统部署中提供的数据库和内容管理工具。 Gatsby 和 Next.js 也可用于生成静态站点,但它们还提供可用于无头 WordPress 部署的高级前端框架。 但请记住,无头 WordPress 的真正优势不在于它使用的数据库少得多,而是它优化了数据库的使用,以获得比传统 CMS 的单一主题、单一用途前端更多的可能性。 使用无头 WordPress,您可以构建多个前端或支持渐进式 Web 应用程序 (PWA) 或本机移动应用程序。
为什么 Headless WordPress 是最好的 Headless CMS
WordPress 是一个功能强大且使用广泛的平台,它作为无头 CMS 处于成功的独特位置。
以下是 WordPress 可能是无头 CMS 最佳选择的五个原因。
1. 您已经在使用 WordPress,其他人也是
很有可能,您已经在使用 WordPress,所以砍掉它的头是向前迈出的简单一步。
由于 WordPress 是前端不可知论者,具有充满内容的数据库的现有站点可以相当轻松地变得无头。 或者,无头 WordPress 站点可以有一个“头”重新连接到它。 使用 WordPress 向任一方向移动都不困难。
您的许多员工和未来的雇员都拥有或将拥有 WordPress 经验。 您可以依靠熟悉的技术获得更轻松的入职体验。
2. 您的前端开发人员不需要接触 WordPress — 或 PHP
由于 PHP 被认为是一种后端应用程序语言,因此它通常不是现代前端开发培训的关键部分。 然而,WordPress 平台是用 PHP 编码的。 WordPress 的传统(非无头)前端开发侧重于创建使用 PHP 开发人员而非其他人熟悉的 WordPress API 函数和代码的自定义主题。 虽然 WordPress 发展迅速,并且与其站点编辑器兼容的新主题可能很少或根本不使用 PHP,但在 PHP 完全退回到其后端之前,WordPress 还有很长的路要走。 目前,有一个很好的解决方案,您可以使用它来减少对 PHP 的依赖或完全绕过它以支持现代前端框架。 该解决方案是无头 WordPress。
如果您正在雇用前端开发人员从事标准(非无头)WordPress 项目,您可能会发现可以利用的劳动力资源较少。 不熟悉 PHP 或类似服务器端脚本语言的开发人员可能会发现他们的 WordPress 学习曲线很高。 但是,如果他们擅长使用复杂的 CSS 和 JavaScript 框架(如 React)进行前端开发,那么这对于无头 WordPress 网站来说是完美的。 为什么不发挥自己的长处呢? 在另一种情况下,如果您还没有使用 WordPress 或类似的 CMS,但您有经验丰富的前端开发人员,您可能不想让他们学习如何使用全新的 CMS。 这是无头 WordPress 可以成为一个很好的解决方案的时候。
开发人员无需熟悉 WordPress 即可为无头 WordPress 站点构建前端。 您几乎可以雇用任何有能力的前端开发人员。 你可以花一点钱或很多钱,但得到一个完全定制的前端。 如果您有非常独特的需求,那么完全独特的定制网站设计几乎总能为您提供最好的服务。
3.企业级主机支持Headless WordPress
几乎每个网站托管平台都提供 WordPress 托管。 他们可能拥有超过十年的支持经验。 WordPress 托管主机支持企业 WordPress 站点,许多主要的 WordPress 托管主机提供专门的无头托管、工具和支持。 他们将您网站的安全性和性能放在首位。
4. 无头 WordPress 很快
与静态站点相比,每个 CMS 都会为访问者发布更慢的加载速度时间。 动态页面生成需要更多的服务器资源,而大量构建的 CMS 可能会产生大量服务器开销。 即使是具有可靠托管和高效缓存的高性能 WordPress 站点,也会因高流量负载和许多活跃的登录前端或后端用户而变慢。 无头 WordPress 站点仍然可以从 CMS 中受益,但更像是带有数据库的静态站点生成器。 当访问者访问无头站点时,他们获得的大部分是快速加载的静态文件。
加载时间过长的网站是网站所有者面临的最大问题之一。 随着移动网站浏览量呈指数增长,速度比以往任何时候都更加重要。 在电子商务网站上,缓慢的加载意味着失去销售。 典型的用户不会坐下来等待您的网站加载超过几秒钟。 如果它没有立即加载,他们将继续进行下一件事。
减少网站的加载时间至关重要。 此外,谷歌在对搜索结果的网站进行排名时会考虑页面加载速度。 如果 SEO 是您的重中之重,那么考虑 WordPress 的不同前端可能是明智的。
5. 无头 WordPress 可以提高安全性
普通的 WordPress 安装会暴露后端管理界面,而不仅仅是登录屏幕。 即使是低级别的非管理员用户也有可能访问后端管理员。 有时黑客可以通过易受攻击的插件或主题来利用这一点。 无头 WordPress 网站通常根本不会使用主题,而以内容为中心的无头网站可能会将用户限制为少数几个受信任的用户。 在这种情况下,登录过程可以被严格锁定,黑客的其他可能目标可能会因为不需要而被关闭。
您可以使用强大的 WordPress 安全插件,如 iThemes Security Pro 来完全保护无头 WordPress 网站。 它在任何类型的 WordPress 站点上都同样有用,可用于保护后端、设置适当的用户访问角色以及实施安全登录策略。
什么时候使用无头 WordPress 是个坏主意?
虽然无头 WordPress 是一个非常强大的工具,但它也有一些缺点。
它可能很复杂
构建无头 CMS 不适合没有经验的开发人员,除非他们准备好进行重要的学习。 与 100% 即插即用的 WordPress 不同,无头 CMS 不是。 您从一个简单的 WordPress 安装开始,然后解耦它的各个部分,主要是前端。 然后你需要开发自己的前端。 如果这是一个不熟悉的领域,将会有一个显着的学习曲线。 与普通的 WordPress 站点不同,headless WordPress 几乎没有被广泛理解或记录。 与主要的无头 WordPress 托管和开发专家联系并关注他们所做的工作是值得的。
有些事情行不通
WordPress 中较新的站点编辑功能在无头站点上不会有用或无法使用。 让 Gutenberg post editor 中的块编辑器与你的无头前端一起工作也带来了一些挑战。 许多 WordPress 插件在无头环境中可能无法正常工作或根本无法工作。 WordPress 主机和开发人员正在努力改进和支持 headless WordPress 开发,因此这是一个一直在变化的领域。 仔细研究无头 WordPress 技术的当前状态并相应地计划您的项目。
维护是强制性的
维护您自己的前端代码可能非常耗时。 由于 Gutenberg 后期编辑器位于 WordPress 后端,如果您想在无头网站上使用它,您必须将其后端样式与解耦的前端框架同步,以获得真正的所见即所得体验。 该前端框架也需要不断维护。 无外设部署需要仔细提前规划持续维护,这超出了传统的 WordPress 或 CMS 驱动的网站。
无头 WordPress 入门
安装WordPress,把前端砍掉!
与 WordPress 中的通常情况一样,一些插件可以帮助您做到这一点。 一个被恰当地命名为 Headless CMS 插件。 像任何其他 WordPress 插件一样安装和激活它。
接下来,开始处理您网站的前端。 您可以采取几种不同的方法。 您可能决定选择一个已经存在的前端或框架作为构建基础,例如 Gatsby。 或者,您可以考虑构建一个渐进式 Web 应用程序。
Jamstack
如果您不熟悉 Jamstack,它是一个常用的 Web 开发平台。 使用它可以很好地作为无头 WordPress 或任何其他 CMS 的前端。
松散耦合是 Jamstack 的最大优势之一。 如果您曾经经历过分离 WordPress 的过程,您会发现这个功能非常有用。
渐进式 Web 应用程序 (PWA)
PWA 在很多方面类似于网站。 但与网站不同的是,PWA 将采用大量 Javascript 库,为用户提供原生移动体验
为此,您需要使用 React 或 Vue 等框架来开发应用程序。
盖茨比
您是否希望在保持使用无头 CMS 获得的大部分自由的同时快速跟踪您的开发过程?
Gatsby 是一个不错的选择,并且有一个插件。
无头 WordPress 适合您吗?
WordPress 本身就是一个令人难以置信的工具。 但有时您可能需要使用无头 CMS 来拥有自己的前端。
在本指南中,您了解了设置无头 WordPress 时应采取的方法、原因和方法。
如果您确定无头是满足您的网站开发需求的最佳方式,那么现在您已经足够了解可以开始了。
保护和保护 WordPress 的最佳 WordPress 安全插件
WordPress 目前为超过 40% 的网站提供支持,因此它很容易成为怀有恶意的黑客的目标。 iThemes Security Pro 插件消除了 WordPress 安全性的猜测,使保护和保护您的 WordPress 网站变得容易。 这就像拥有一名全职安全专家,不断为您监控和保护您的 WordPress 网站。
Dan Knauss 是 StellarWP 的技术内容通才。 自 1990 年代后期以来,他一直是一名作家、教师和自由职业者,从事开源工作,自 2004 年以来一直从事 WordPress。