cloakwp / decoupled
将WordPress转换为无头CMS。
Requires
- cloakwp/block-parser: ^0.0
- cloakwp/core: ^0.0
- cloakwp/hook-modifiers: ^0.0
- cloakwp/virtual-fields: ^0.0
- composer/installers: ^2.2
- myclabs/deep-copy: ^1.11
- snicco/better-wp-api: ^1.9
Requires (Dev)
- franzl/studio: ^0.16
README
一个PHP/Composer包,包含将WordPress转换为无头CMS所需的所有内容。
CloakWP是一套开源工具集,使构建高质量的WordPress无头CMS网站变得非常简单和快速。与传统的WordPress不同,您可以利用最新的JavaScript框架(如Next.js)构建前端,并从更好的开发者体验、生产率、网站性能以及最终为您或您的客户带来的业务结果中受益。
与大多数现有的无头WordPress解决方案不同,您不必牺牲传统“耦合”方法的好处,例如Gutenberg编辑器、文章预览模式、编辑器中的ACF块预览、前端管理工具栏等。而且您也不必自己维护所有底层无头基础设施(相信我们,这需要很多工作);我们将基础设施提取到一个可维护的、版本控制的软件工具套件中,您可以轻松地随着我们发布更新而升级。这些工具包括
- CloakWP插件(您现在正在查看的插件)
- CloakWP.js(NPM包,用于您的无头前端,与该插件通信,为React提供Gutenberg块渲染框架,等等)
- CloakWP基础主题(基本的无头友好WordPress主题)
- 可选: CloakWP Bedrock(CloakWP项目的免费生产就绪的无头WordPress模板,扩展了流行的Bedrock模板,包括Spinup Local WP(简单的本地开发Dockerized WordPress)、Composer用于依赖项管理以及预安装的最佳实践无头插件集合)
- 可选: CloakWP Inception(免费、集成的WP子主题+ Next.js前端,以快速启动您的无头项目)
无头架构是未来的趋势,但WordPress并非为它而构建。CloakWP是解决方案。这简单是构建现代WordPress网站的最佳方式。
插件功能
如上所述,CloakWP插件只是问题的一部分。它提供了以下功能
- 重写WordPress URL到您的无头前端URL
- 将文章预览模式与您的无头前端集成
- 改进/扩展WordPress REST API,使其功能更完整且更适合无头,包括
- 将Gutenberg块数据转换为JSON并公开(有关如何使用CloakWP.js中的块渲染框架从您的无头前端映射Gutenberg块到自己的React组件的更多信息,请参阅CloakWP.js)
- 扩展默认的文章/页面路由,包括文章的特色图像、分类法、ACF关系字段、完整的URL路径等,解决许多无头特定问题,防止只为了检索单篇文章数据而需要进行多次API请求
- 提供自定义的
/wp-json/wp/v2/frontpage
路由,以选择性地检索“WP管理员”>“设置”>“阅读”中设置为“主页”的页面 - 提供自定义的
/wp-json/cloakwp/menus/{menu_slug}
路由,以便更容易地检索WordPress菜单数据
- 启用按需增量静态再生(ISR),即当您保存WordPress文章的更改时,插件会立即重建您的解耦前端上的特定静态页面,以便在几秒钟内查看更改——这得益于静态站点生成,但又不失静态站点生成的优点,无需等待几分钟/几小时内容更改才能生效(没错,对于99%的内容/营销站点来说,服务器端渲染不再比静态站点生成有任何优势)
- 在无头环境下隐藏不相关的wp-admin页面
- 使您的身份验证状态与您的解耦前端保持同步(例如,使您只能为登录用户渲染CloakWP.js
AdminBar
组件) - 为遵循我们推荐的ACF字段注册方法的用户添加自定义ACF字段、
ThemeColorPicker
和Alignment
(即使用ExtendedACF的面向对象PHP)
安装
如果您没有使用CloakWP Bedrock,该Bedrock预安装CloakWP插件,您可以通过运行Composer来安装插件:
composer require cloak-labs/cloakwp-plugin
没有使用Composer?首先,强烈考虑使用Composer。否则,下载插件的GitHub仓库并将其上传到WordPress作为.zip文件
配置
我们在CloakWP的所有工具中付出了努力,以拥抱“代码即配置”。这就是为什么在wp-admin中看不到可配置的插件设置页面;相反,您可以通过定义PHP常量和使用过滤器/动作钩子来配置、扩展和覆盖东西。
为什么?与通过UI保存数据库中的配置相比,通过代码定义的配置确保您的本地开发环境是真理的来源,并使您能够将配置更改推送到生产环境,而不是通过困难的数据库合并方法拉取它,或者更糟糕的是,手动在生产环境中重做您的配置更改。它使事情变得干净、版本控制、可重用、可自动化等。
PHP常量
将以下必需的常量声明添加到您的wp-config.php
文件中,或者如果您使用CloakWP Bedrock启动器或您自己的Bedrock实现,则添加到您的.env文件中:
# Required define('MY_FRONTEND_URL', 'https://example.com'); // decoupled frontend URL define('CLOAKWP_AUTH_SECRET', '1234_CUSTOMIZE_ME'); // secure secret key # Optional # define('CLOAKWP_API_BASE_PATH', 'custom-route'); // defaults to "cloakwp"; must match your front-end's dynamic API route folder name where you import the CloakWP.js `ApiRouter` # define('CLOAKWP_PREVIEW_BLOCK_PATHNAME', '/custom-route'); // defaults to "/preview-block"; must match your front-end's page route where you import the CloakWP.js `BlockPreviewPage`
钩子
我们近期的目标是发布一个版本的插件,它提供各种过滤器/动作钩子来扩展/覆盖某些功能;目前,您只需获得上述PHP常量。
常见问题解答
插件有付费版本吗?
CloakWP的全部工具套件都是完全免费和开源的,我们打算保持这种状态。我们最终将寻找构建互补的付费产品/服务,以便使这个项目在长期内具有可持续性,但我们始终会保持开源优先的理念,特别是对于上述核心基础设施工具等。