什么是无头 WordPress? 如何创建一个? [教程]
已发表: 2024-03-04什么是无头 WordPress?
您可能知道,WordPress 有两个部分:后端和前端。 后端负责所有管理任务,例如编辑、添加和删除内容帖子以及更改内容外观的所有配置和设置。 而前端负责在屏幕上显示所有后端处理的内容。
现在,当您将前端和后端这两个部分解耦或分离,而使后端不进行内容管理时,术语“Headless WordPress”就出现了。 现在,您可以使用任何技术来构建前端并将其显示在屏幕上。
WordPress 无头 CMS 的优点和缺点是什么?
Headless WordPress 有很多优点和缺点,每个优点和缺点都会影响您在不同场景下的工作。 为了清楚地了解,让我们以比较表的形式比较其优缺点。
优点 | 缺点 |
---|---|
1.解耦架构让前端开发更加灵活 | 1.开发者的学习曲线更陡峭 |
2.能够利用 WordPress 强大的后端内容管理功能 | 2.需要额外的设置和配置 |
3.与WordPress插件和生态系统无缝集成 | 3.与传统WordPress相比支持有限 |
4.由于减少了服务器负载而提高了性能 | 4.管理多个系统的潜在复杂性 |
5.通过减少前端的攻击面来增强安全性 | 5、开发和维护成本增加 |
6.更好的可扩展性和性能优化选项 | 6.对第三方工具和服务的依赖 |
无头 WordPress 有哪些限制?
无论无头 WordPress 设置的优点是否掩盖了其缺点,您都需要记住无头 WordPress 的某些限制:
- 陡峭的学习曲线:对于初学者来说,自己实现无头 WordPress 设置是非常困难的。 这需要对解耦架构和附加技术有敏锐的了解。
- 昂贵的维护:您将需要维护两个不同的实例,一个是网站基础设施,另一个是多个开发人员。 这会增加您的总体成本。
- 昂贵的设置:完成 Headless WordPress 的设置可能非常昂贵,因此您还需要在网站的总体预算中考虑这个因素。
- 有限的本机前端功能:虽然您可以自由地设计前端,没有任何限制,但没有 WordPress 主题层,但这会很困难。 这是因为开发人员必须从头开始构建完整的前端功能,或者需要使用额外的第三方工具。 这导致 WordPress 失去了一些本机功能。
- 复杂性增加:管理解耦的 WordPress 架构变得很困难,因为它涉及处理多个系统,即后端、前端、API 等。这非常复杂,甚至难以维护。
- 对第三方工具的依赖:由于 Headless WordPress 不提供本机 WordPress CMS 的所有功能。 这意味着你必须依赖第三方服务和工具来进行前端开发。 这意味着始终存在与可靠性、安全性和成本相关的潜在风险。
- 兼容性问题:还需要注意的是,并非所有 WordPress 插件和主题都针对无头设置进行了优化。 这意味着,三个功能将受到限制或需要定制开发以确保兼容性。
- 潜在的性能开销:尽管无头 WordPress 架构在某些情况下可以提高性能。 但如果前端实现优化不佳或 API 请求效率低下,可能会导致性能瓶颈。
- 有限的社区支持:与传统的 WordPress 设置相比,无头 WordPress 解决方案的用户和开发人员社区可能较小,从而导致资源、教程和支持选项较少。
- 成本考虑因素:实施和维护无头 WordPress 设置可能会产生额外的开发、托管和第三方服务成本,这可能是某些项目的限制因素。
在决定无头 WordPress 方法是否适合特定项目时,考虑这些限制至关重要。
无头 WordPress 好用吗?
如果您忽略我们之前提到的限制,在某些情况下使用无头 WordPress 可能会对您有利。
- 如果您的网站安全是重中之重,并且数据处理非常敏感或关键。
- 如果您喜欢定制设计和无限的可能性,而不受 WordPress 有限主题选项的限制,并且您正在寻求独特的前端设计,那么请选择 Headless WordPress。
- 如果您想让您的网站与 WordPress 的频繁更新和升级隔离。
- 如果您想让您的网站或应用程序面向未来并适应新技术、趋势和用户行为,而无需彻底检修整个基础设施,请考虑无头 WordPress。
- 如果您正在寻找演示网站、小型或短期项目或教程,无头设置可能是一个不错的选择。
无头 WordPress 是如何工作的?
在谈论标准 WordPress 时,它具有用户友好的界面和易于使用的管理面板,通过它您可以轻松编辑、创建和删除内容以及管理网站。
对于前端,它提供了数千个主题选项,结合内置主题以及第三方主题,在屏幕上制作一个具有视觉吸引力的网站。
但是,当您解耦 WordPress 时,您可以享受两全其美的好处。 为此,WordPress 有一个名为 WordPress REST API 的 API。
它是一个编程接口,允许开发人员使用标准 HTTP 方法访问 WordPress 网站数据并与之交互。
它允许开发人员远程检索、创建、更新和删除 WordPress 内容,这使得更容易将 WordPress 与其他应用程序平台或其他前端技术(如 React.js、Angular.js 等)集成以创建自定义网站。
如何让 WordPress 无头? (无头 WordPress 教程)
您可以通过多种方式解耦标准 WordPress,具体取决于您要使用的技术、资源、首选语言和框架。 无论使用哪种方法,您都应该熟悉前端语言以及 WordPress Rest API。
但现在,我们将选择最简单的方法,因为大多数人都是初学者。 查看下面给出的步骤:
第 1 步:设置 WordPress
您需要做的第一件事是创建一个 WordPress 网站,就像您通常在服务器上创建的网站一样。 这意味着该网站应该是实时的,有自己的域名和适当的网络托管帐户。
但选择合适的 WordPress 托管平台本身就是一项非常困难的任务,甚至是设置 WordPress 和创建无头 CMS 时非常关键的一步。
它非常重要,因为即使前端和后端解耦,后端仍然需要驻留在需要托管的服务器上。
服务器不仅提供了存储所有网站内容的场所,而且无论使用哪种技术,其性能、安全性和可靠性对于将网站内容顺利交付到前端也非常关键。
因此,选择一台提供极速服务器性能和严格安全性的主机变得至关重要。
考虑到这一点,您可以选择 WPOven,它是最快、领先的完全托管 WordPress 托管公司之一,提供速度、企业级安全性和礼宾支持,确保您的无头 WordPress 之旅更加顺利。
- 具体来说, WPOven在顶级云提供商Linode上提供托管托管,确保高速性能和可扩展性。
- 该平台提供 WordPress 预安装,使 WordPress 和其他工具的设置变得轻松。
- 此外,借助内置的高级缓存系统和 Cloudflare 的内容交付网络 (CDN),无论用户位于何处,您的内容都可以更快地交付。
- 此外,WPOven 通过内置 Web 保护防火墙和 SSL 安装确保企业级强大的安全性,帮助保护您的后端数据和交互。
- 自动备份和轻松恢复选项提供了额外的数据保护层,让您高枕无忧。
- 此外,WPOven 的 24/7 客户支持和广泛的知识库可确保快速解决任何问题,使您能够专注于构建和管理无头 CMS,而无需担心托管相关的麻烦。
第 2 步:启用 REST API
接下来,您需要做的是确保 WordPress REST API 已启用。 默认情况下,它在所有新安装的 WordPress 上启用。
但是,您仍然需要验证它是否在您的网站上启用。 您只需在浏览器中输入以下 URL 发出 API 请求即可做到这一点:
https://example.com/wp-json/wp/v2/
将“example.com”更改为您的实际域名,如果启用了 API,它将显示一个 JSON 响应,其中包含有关您网站帖子的一些信息。
或者,您可以借助插件,例如 WP REST API 插件。
阅读: WordPress REST API:入门指南
第3步:通过API获取帖子数据
如果您想获取发布数据,请按照下列步骤操作:
- 打开 WordPress 仪表板 > 设置 > 永久链接,然后选择帖子名称。
- 之后,您需要下载Postman API测试工具。
- 现在,在 Postman API 工具中输入以下格式的 URL。
https://mydomain.com/wp-json/wp/v2/posts
这将获取您的 WordPress 网站内的帖子数据。
第 6 步:设置 React 应用程序
现在我们已经完成了后端的工作,是时候开始前端的工作了。 首先,我们通过在终端中执行下面给出的代码来创建一个 React 应用程序。
npm create vite@latest my-blog-app
cd my-blog-app
npm install
此命令将使用 Vite 创建一个新的 React 应用程序,并安装必要的外部库或包。
另外,您还需要包含 Axios 来处理 HTTP 请求。 为此,运行以下命令来安装它。
npm install axios
现在,您可以通过在终端或命令提示符中运行命令npm run dev
来启动应用程序的本地开发服务器。
当您运行此命令时,它将在您的本地计算机上启动一个服务器,并使您的应用程序可以通过 URL https://127.0.0.1:5173
访问。
接下来您需要做的就是在代码编辑器(无论您喜欢什么,Visual Studio Code、Subkline Text、Atom 等)中打开项目,并删除不必要的文件,例如 index.css、app.css 等。
第 7 步:从 WordPress 检索帖子
在App.jsx
文件的顶部,从 React 库导入useState
挂钩。 这允许您在功能组件中使用状态。
import React, { useState } from 'react';
在你的功能组件App
中,使用useState
钩子初始化一个名为posts
的状态。 该州将担任一系列职位。 useState([])
使用空数组作为初始值来初始化posts
。
const [posts, setPosts] = useState([]);
使用useState([])
使用空数组初始化posts
状态后,您需要添加代码以从 WordPress REST API 获取帖子。 这涉及到向提供帖子数据的 API 端点发出 HTTP 请求。
您需要在状态声明之后添加获取帖子数据所需的代码。 此代码通常涉及使用fetch()
等方法或 Axios 等库向提供帖子数据的 WordPress API 端点发出 HTTP GET 请求。
接下来,在状态声明后添加以下代码,以从 WordPress REST API 检索帖子数据并相应地更新帖子。
const fetchPosts = () => {
// Using axios to fetch the posts
axios
.get("https://yourdomain.com/wp-json/wp/v2/posts")
.then((res) => {
// Saving the data to state
setPosts(res.data);
});
}
// Calling the function on page load
useEffect(() => {
fetchPosts()
}, [])
此代码在组件安装时从 WordPress 网站的 REST API 获取帖子,并使用useState
挂钩的setPosts
函数使用获取的数据更新组件的状态。
第 8 步:创建博客组件并渲染它
现在在src文件夹内创建一个名为“components”的新文件夹,并创建两个新文件 Blog.jsx 和 blog.css(在组件内)。
接下来,首先将以下代码添加到Blog.jsx文件中:
import axios from "axios";
import React, { useEffect, useState } from "react";
import "./blog.css";
export default function Blog({ post }) {
const [featuredImage, setFeaturedImage] = useState();
const getImage = () => {
axios
.get(post?._links["wp:featuredmedia"][0]?.href)
.then((response) => {
setFeaturedImage(response.data.source_url);
});
};
useEffect(() => {
getImage();
}, []);
return (
<div class="container">
<div class="blog-container">
<p className="blog-date">
{new Date(Date.now()).toLocaleDateString("en-US", {
day: "numeric",
month: "long",
year: "numeric",
})}
</p>
<h2 className="blog-title">{post.title.rendered}</h2>
<p
className="blog-excerpt"
dangerouslySetInnerHTML={{ __html: post.excerpt.rendered }}
/>
<img src={featuredImage} class="mask" />
</div>
</div>
);
}
该组件获取并显示作为道具传递的博客文章的标题、日期、摘录和特色图像。
之后将以下样式添加到 blog.css 文件中,
@import url("https://fonts.googleapis.com/css?display=swap&family=Poppins");
.blog-container {
width: 400px;
height: 322px;
background: white;
border-radius: 10px;
box-shadow: 0px 20px 50px #d9dbdf;
-webkit-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
transition: all 0.3s ease;
}
img {
width: 400px;
height: 210px;
object-fit: cover;
overflow: hidden;
z-index: 999;
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
}
.blog-title {
margin: auto;
text-align: left;
padding-left: 22px;
font-family: "Poppins";
font-size: 22px;
}
.blog-date {
text-align: justify;
padding-left: 22px;
padding-right: 22px;
font-family: "Poppins";
font-size: 12px;
color: #c8c8c8;
line-height: 18px;
padding-top: 10px;
}
.blog-excerpt {
text-align: justify;
padding-left: 22px;
padding-right: 22px;
font-family: "Poppins";
font-size: 12px;
color: #8a8a8a;
line-height: 18px;
margin-bottom: 13px;
}
最后,在App.jsx
文件的return
语句中插入以下代码片段。 您可以在此处使用 JSX 语法定义组件 UI 的结构。
<div>
{posts.map((item) => (
<Blog post={item} />
))}
</div>;
Here's the final version of your "App.jsx":
import React, { useEffect, useState } from 'react'
import axios from "axios"
import Blog from './components/Blog';
export default function App() {
const [posts, setPosts] = useState([]);
const fetchPosts = () => {
axios
.get("https://my-awesome-website.local/wp-json/wp/v2/posts")
.then((res) => {
setPosts(res.data);
});
}
useEffect(() => {
fetchPosts()
}, [])
return (
<div>
{posts.map((item) => (
<Blog
post={item}
/>
))}
</div>
)
}
保存文件并刷新浏览器。 现在您将能够在屏幕上看到渲染的博客文章。
无头 WordPress 示例
为了供您参考并建立信心,我们在这里为您提供了一些 Headless WordPress 示例:
1.Techcrunch
如果你是一名科技爱好者,那么你一定对 TechCrunch 很熟悉。 这是一家领先的科技媒体和新闻网站。 他们重新设计了网站的前端,以提供无缝的用户体验。
为了实现这一目标,他们采用了 Headless WordPress 方法,并使用 React 应用程序创建前端和后端 WordPress。
2.Facebook品牌资源中心
Facebook 现在俗称 Meta,是一家社交媒体巨头,在其品牌资源中心网站中使用这种无头 WordPress 方法作为其品牌资产的风格指南。
该网站采用独特而优雅的网页设计与流畅的用户体验的独特融合。 如果 Facebook/Meta 像大型科技巨头一样可以的话。 相信无头 WordPress,你也可以。
无头对 SEO 有好处吗?
如果实施正确,从 SEO 的角度来看,无头 WordPress 可以创造奇迹。 就是这样,
- 提高网站性能:由于网站性能是一个重要的搜索引擎排名因素,Headless WordPress 允许您创建快速且轻量级的前端应用程序。 通过提供静态 HTML 文件或利用服务器端渲染 (SSR),无头设置可以更快地向用户提供内容,从而提高 SEO 排名。
- 结构化数据和元数据:您向搜索引擎提供的有关您的网站或内容的信息越多,搜索引擎就能更好地理解并有助于索引。 因此,需要模式或结构化数据以及元数据。 使用无头 WordPress,您可以完全控制内容的结构和格式。 允许您轻松实现结构化数据标记(例如Schema.org)并优化元数据(标题标签、元描述等),以提高搜索引擎可见性和点击率。
- 内容呈现的灵活性:无头架构允许开发人员创建高度定制和交互式的用户体验。 用户体验越好,访客保留率就越高,跳出率就越低,这会给搜索引擎带来积极的信号。
- 与 SEO 工具集成:许多 SEO 工具和插件都与无头 WordPress 设置兼容。 您仍然可以使用 Yoast SEO 或 Rank Math 等流行的 SEO 插件来优化您的内容并监控网站的性能。
- 移动设备友好的设计:默认情况下,无头 WordPress 允许创建响应式且适合移动设备的网站。 由于移动设备友好性是 SEO 排名的关键因素(尤其是 Google 的移动优先索引),无头设置可以帮助提高网站在搜索结果中的可见度。
结论
总之,除了它的某些限制、缺点或缺点之外。 如果实施得当,无头方法可以创造奇迹。 特别是对于喜欢创建无头 Web 应用程序的开发人员或内容创建者来说,它非常有利。
毫无疑问,解耦标准 WordPress 可以打开一个充满可能性的世界,例如获得使用 React 设计网站 UI 的自由以及使用 WordPress 管理内容的自由。
该技术使您能够享受每种技术的完整功能以及灵活性、可扩展性和 SEO 优化的优势。
在整个博客中,我们尝试解决有关无头 WordPress 的所有一般查询,并为您提供了一些有关如何创建无头 WordPress 的步骤供您参考。 (但是,可以有多种方法来解耦 WordPress,因此请遵循您认为最简单的方法)。
经常问的问题
WordPress 可以无头使用吗?
是的,WordPress 可以无头使用。 在无头 WordPress 设置中,传统的 WordPress 前端与后端分离。 无头 WordPress 设置不是使用 WordPress 的内置 PHP 模板系统渲染网页,而是使用其 REST API 或 GraphQL API 来获取内容,然后将其显示在使用不同技术堆栈(例如 React、Vue)构建的单独前端应用程序上.js 或 Angular。
无头 WordPress 更快吗?
是的,在许多情况下,与传统的 WordPress 设置相比,无头 WordPress 可以提供更高的性能和更快的页面加载时间。
谁需要无头 CMS?
Headless CMS(包括 Headless WordPress)在某些场景下对用户非常有利,例如:
1.最适合开发商和机构
2.内容创作者和编辑者
3.数字营销人员
4、企业组织
5 . 媒体和出版社
6.初创企业和中小企业
Rahul Kumar 是一位网络爱好者和内容策略师,专门从事 WordPress 和网络托管。 凭借多年的经验和对了解最新行业趋势的承诺,他制定了有效的在线策略来增加流量、提高参与度并提高转化率。 拉胡尔对细节的关注以及制作引人入胜的内容的能力使他成为任何希望提高其在线形象的品牌的宝贵资产。