一句话结论
WordPress 无头(Headless)就是把”后台内容管理”和”前台页面渲染”彻底拆开——WordPress 只负责存内容和提供 API,页面由 Next.js 、 Nuxt 等现代前端框架渲染,从而获得更快的加载速度和更灵活的部署,同时保留你熟悉的 WP 编辑体验。
什么场景适合上无头
无头不是银弹。下面这些情况收益最明显:
- 团队已有 React / Vue 技术栈,想用 WP 当”内容中台”;
- 需要把同一份内容同时喂给网站、 App 、小程序多个前端;
- 对首屏速度和 SEO 要求高,想用 SSR/SSG(服务端/静态渲染);
- 内容编辑用 WP 后台,前端交给工程团队独立迭代。
如果只是做个普通企业站、博客,传统主题方案(如本站的 theme.json 配置)更简单省心,不必硬上无头。
六步把 WordPress 配成纯后端
- 在子域名(如 cms.example.com)装一份干净的 WordPress,只当内容后台,主题可以用极简空白主题。
- 关闭前台渲染:用插件(Headless Mode / Disable Frontend)或 functions.php 把非 /wp-admin 、非 /wp-json 的请求重定向到后台。
- 确认 REST API 默认已开启,测试
/wp-json/wp/v2/posts能拿到数据;需要更灵活查询再装 WPGraphQL 。 - 配置 CORS,只允许你的前端域名跨域访问 API(见下方代码)。
- 用 Next.js / Nuxt 等框架搭前端,通过 fetch 或 Apollo 拉取 WP 内容,配合 SSG/ISR 做缓存。
- (可选)安装官方 Headless 插件,获得预览跳转、菜单/站点设置接口与缓存失效回调。
关键代码:关闭前台 + 配置 CORS
把下面两段放进主题的 functions.php(或 MU 插件),即可隐藏前台并放开指定域名的跨域访问:
// 1) 非后台、非 REST 请求一律跳后台
add_action( 'template_redirect', function () {
if ( ! is_admin() && ! ( defined( 'REST_REQUEST' ) && REST_REQUEST ) ) {
wp_safe_redirect( admin_url() );
exit;
}
} );
// 2) 仅放行前端域名的 CORS
add_filter( 'rest_pre_serve_request', function ( $response ) {
$allowed = array( 'https://www.yourfrontend.com' );
$origin = isset( $_SERVER['HTTP_ORIGIN'] ) ? sanitize_url( wp_unslash( $_SERVER['HTTP_ORIGIN'] ) ) : '';
if ( in_array( $origin, $allowed, true ) ) {
$response->header( 'Access-Control-Allow-Origin', $origin );
$response->header( 'Access-Control-Allow-Methods', 'GET, POST, OPTIONS' );
}
return $response;
} );
REST API 还是 GraphQL?
REST API 零插件、上手快,适合常规内容读取;WPGraphQL 查询更灵活、能精确指定字段、减少冗余传输,适合复杂前端。社区主流组合是 “WordPress + WPGraphQL + Next.js”。
前端怎么取数据(Next.js 示例)
async function getPosts() {
const res = await fetch( 'https://cms.example.com/wp-json/wp/v2/posts', {
next: { revalidate: 60 }, // ISR:每 60 秒重新验证
} );
if ( ! res.ok ) throw new Error( 'Failed to fetch posts' );
return res.json();
}
查看官方 Headless 插件说明别踩的坑
- 安全:Headless 插件的
?headless=true只是路由标记不是鉴权,公开接口记得加 API Key; - 预览:编辑器”预览”默认指向 WP 主题,需要插件把预览指向你的前端;
- 媒体:图片仍走 WP 媒体库,前端记得用 CDN 加速。
相关阅读
- WordPress 7.0 内置 AI Client:在后台直接接生成式 AI
- 用 WordPress REST API + 应用密码远程自动发文章
- 让 WordPress 被 AI 引用:GEO 优化的 9 个实操步骤
- 网站添加 JSON-LD 结构化数据:让搜索引擎和 AI 直接读懂你
无头后 WP 后台还能正常用吗?
能。无头只去掉”前台展示层”,文章、媒体、分类、自定义字段等后台能力完全不变,编辑器照常工作。
SEO 会不会变差?
不会,反而更好——只要前端用 Next.js/Nuxt 的 SSR/SSG 输出完整 HTML,搜索引擎抓到的就是渲染好的页面。纯客户端渲染(CSR)才伤 SEO 。
小站点有必要上无头吗?
没必要。无头增加了前端框架、构建、 CORS 、缓存失效等多套运维成本,普通博客/企业站用传统主题更划算。
WPGraphQL 和 REST API 能共存吗?
可以。 REST API 默认开启,WPGraphQL 是独立插件提供
/graphql 端点,两者互不冲突,可按接口需要混用。








评论 (0)