如何使用 Next.js 将 Wordpress 配置为无头 CMS

Posted

技术标签:

【中文标题】如何使用 Next.js 将 Wordpress 配置为无头 CMS【英文标题】:How to configure Wordpress as headless CMS with Next.js 【发布时间】:2021-10-03 17:43:45 【问题描述】:

我在 Xampp 的 htdocs 文件夹中有一个 WordPress 应用程序,并在 localhost:3000 中运行了一个单独的 Next.js 应用程序。

通常 WordPress 需要安装一个主题,您可以通过 http://yourdomain.com 浏览该站点。另一方面,可以从 http://yourdomain.com/wp-admin 访问管理 UI。

我的问题如下,如何将twentytwentyone 主题替换为我的Next.js 应用程序,该应用程序使用GraphQL 从WordPress 端点请求数据并将其作为根路径,换句话说http://yourdomain.com 必须加载 Next.js 应用程序,但 http://yourdomain.com/wp-admin 必须是 WordPress 管理 UI。 (没有主题)。

如果这不是理想的做法,并且应该分别部署 WordPress 和 Next.js 应用程序,我如何才能将 WordPress 仅用于管理 UI 并取消来自 WordPress 的任何其他呈现,例如默认页面使用twentytwentyone 主题并使 WordPress 仅作为 API 端点?

提前致谢。

【问题讨论】:

【参考方案1】:

我已经完成了类似的事情。 我发现实现这一目标的最简单方法是在子域上安装 wordpress。

http://admin.yourdomain.com

然后我运行下一个应用程序

http://yourdomain.com

这样,您的下一个应用程序可以从http://admin.yourdomain.com 的 wordpress API 中提取信息 并且可以将wordpress应用的主页重定向到http://admin.yourdomain.comhttp://admin.yourdomain.com/wp-admin

这意味着访问 wordpress 站点的任何人都将被自动重定向到管理员登录,而 wordpress API 可以正常运行。

【讨论】:

谢谢你的想法,我会尽快试试这个。再次感谢:)

以上是关于如何使用 Next.js 将 Wordpress 配置为无头 CMS的主要内容,如果未能解决你的问题,请参考以下文章

Next.Js 使用无头 CMS 资产生成静态站点

通过 Prop 将异步状态传递给 Next.js 组件

如何将 Bootstrap 5 与 Next.js 一起使用?

如何将 firebase 的 firestore/admin sdk 与 next.js 一起使用

Next.js 使用 getServerSideProps 如何将道具从页面传递到组件?

如何将 Font Awesome 添加到 Next.js 项目