<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="atom.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://reactpress.cc/zh/blog</id>
    <title>ReactPress Blog</title>
    <updated>2026-08-01T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://reactpress.cc/zh/blog"/>
    <subtitle>ReactPress Blog</subtitle>
    <icon>https://reactpress.cc/zh/img/favicon.ico</icon>
    <entry>
        <title type="html"><![CDATA[Next.js 博客 SEO 清单（2026）— 用 ReactPress 把排名做扎实]]></title>
        <id>https://reactpress.cc/zh/blog/nextjs-blog-seo-checklist-reactpress</id>
        <link href="https://reactpress.cc/zh/blog/nextjs-blog-seo-checklist-reactpress"/>
        <updated>2026-08-01T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[2026 实用 Next.js 博客 SEO 清单：SSR 标题、meta、sitemap、OG、Core Web Vitals 与结构化数据， 以及 ReactPress 主题与 SEO 插件如何覆盖默认项。]]></summary>
        <content type="html"><![CDATA[<p><img decoding="async" loading="lazy" alt="ReactPress — The Modern Web Creation Platform." src="https://reactpress.cc/zh/assets/images/poster-462f00e3a7be539131b5e1d3cfea7b96.png" width="4340" height="2860" class="img_hKc8"></p>
<p>Next.js 博客能排上去，也可能因为第一天就忘了默认项而消失：纯客户端文章页、缺少 sitemap、稀薄 meta、臃肿图片。这份 <strong>2026 SEO 清单</strong>面向带着<strong>真实 CMS</strong> 发 Next.js 博客的团队，并说明 <strong>ReactPress</strong> 如何盖住那些无聊但关键的基础，让你专注内容。</p>
<p><strong>相关文档：</strong> <a class="" href="https://reactpress.cc/zh/docs/user-guide/site-settings-seo">站点设置与 SEO</a> · <a class="" href="https://reactpress.cc/zh/docs/getting-started/build-nextjs-blog-in-60-seconds">60 秒搭博客</a> · <a class="" href="https://reactpress.cc/zh/docs/developer-guide/theme-development">主题开发</a></p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="1-为爬虫渲染-htmlssr--isr">1. 为爬虫渲染 HTML（SSR / ISR）<a href="https://reactpress.cc/zh/blog/nextjs-blog-seo-checklist-reactpress#1-%E4%B8%BA%E7%88%AC%E8%99%AB%E6%B8%B2%E6%9F%93-htmlssr--isr" class="hash-link" aria-label="1. 为爬虫渲染 HTML（SSR / ISR）的直接链接" title="1. 为爬虫渲染 HTML（SSR / ISR）的直接链接" translate="no">​</a></h2>
<p><strong>要做：</strong> 文章与页面模板服务端渲染（或带 revalidate 的 ISR）。<br>
<strong>别做：</strong> 只在 <code>useEffect</code> 里拉文章，首屏空壳。</p>
<p>ReactPress 官方主题对访客路由使用 <strong>Next.js SSR/ISR</strong>。若你 fork 主题，请保持文章页在服务端路径上。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="2-每个-url-唯一的-title-与-meta-description">2. 每个 URL 唯一的 title 与 meta description<a href="https://reactpress.cc/zh/blog/nextjs-blog-seo-checklist-reactpress#2-%E6%AF%8F%E4%B8%AA-url-%E5%94%AF%E4%B8%80%E7%9A%84-title-%E4%B8%8E-meta-description" class="hash-link" aria-label="2. 每个 URL 唯一的 title 与 meta description的直接链接" title="2. 每个 URL 唯一的 title 与 meta description的直接链接" translate="no">​</a></h2>
<p>清单：</p>
<ul class="contains-task-list containsTaskList_LK5o">
<li class="task-list-item"><input type="checkbox" disabled=""> <code>&lt;title&gt;</code> 唯一，约 50–60 字符，自然包含主关键词</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Meta description 约 150–160 字符，匹配搜索意图</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->分页 / 标签归档无重复标题</li>
</ul>
<p>在 ReactPress Admin 启用 <strong>SEO 插件</strong>，设置单篇 title/description/slug。主题 SSR 应输出这些字段。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="3-canonical-url">3. Canonical URL<a href="https://reactpress.cc/zh/blog/nextjs-blog-seo-checklist-reactpress#3-canonical-url" class="hash-link" aria-label="3. Canonical URL的直接链接" title="3. Canonical URL的直接链接" translate="no">​</a></h2>
<ul class="contains-task-list containsTaskList_LK5o">
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->每个可索引页有绝对 canonical</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->预发 / 预览主机 <code>noindex</code></li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->尾斜杠策略一致</li>
</ul>
<p>上线前在生产配置写好公网站点 URL：<a class="" href="https://reactpress.cc/zh/docs/tutorial-extras/config-intro">配置说明</a>。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="4-sitemap-与-robotstxt">4. Sitemap 与 robots.txt<a href="https://reactpress.cc/zh/blog/nextjs-blog-seo-checklist-reactpress#4-sitemap-%E4%B8%8E-robotstxt" class="hash-link" aria-label="4. Sitemap 与 robots.txt的直接链接" title="4. Sitemap 与 robots.txt的直接链接" translate="no">​</a></h2>
<ul class="contains-task-list containsTaskList_LK5o">
<li class="task-list-item"><input type="checkbox" disabled=""> <code>/sitemap.xml</code> 列出文章与页面（多语言则含 hreflang）</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <code>robots.txt</code> 允许抓取，并指向 sitemap</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->在 Google Search Console / Bing 提交 sitemap</li>
</ul>
<p>ReactPress starter 主题提供 sitemap/robots 模式 — 启用主题后请核验。见 <a class="" href="https://reactpress.cc/zh/docs/user-guide/site-settings-seo">SEO 设置</a>。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="5-open-graph-与-twitter-card">5. Open Graph 与 Twitter Card<a href="https://reactpress.cc/zh/blog/nextjs-blog-seo-checklist-reactpress#5-open-graph-%E4%B8%8E-twitter-card" class="hash-link" aria-label="5. Open Graph 与 Twitter Card的直接链接" title="5. Open Graph 与 Twitter Card的直接链接" translate="no">​</a></h2>
<ul class="contains-task-list containsTaskList_LK5o">
<li class="task-list-item"><input type="checkbox" disabled=""> <code>og:title</code>、<code>og:description</code>、<code>og:url</code>、<code>og:image</code></li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->图片 ≥ 1200×630，并压缩</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->上线后用各平台调试工具验证</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="6-结构化数据">6. 结构化数据<a href="https://reactpress.cc/zh/blog/nextjs-blog-seo-checklist-reactpress#6-%E7%BB%93%E6%9E%84%E5%8C%96%E6%95%B0%E6%8D%AE" class="hash-link" aria-label="6. 结构化数据的直接链接" title="6. 结构化数据的直接链接" translate="no">​</a></h2>
<p>博客/CMS 常用类型：</p>
<table><thead><tr><th>类型</th><th>位置</th></tr></thead><tbody><tr><td><code>Article</code> / <code>BlogPosting</code></td><td>文章模板</td></tr><tr><td><code>Organization</code> / <code>WebSite</code></td><td>站点布局</td></tr><tr><td><code>BreadcrumbList</code></td><td>嵌套文档/博客</td></tr><tr><td><code>FAQPage</code></td><td>FAQ 落地页</td></tr></tbody></table>
<p>用 Google Rich Results 测试验证。ReactPress 文档站自身的 JSON-LD 模式可在主题中借鉴。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="7-core-web-vitals-与媒体">7. Core Web Vitals 与媒体<a href="https://reactpress.cc/zh/blog/nextjs-blog-seo-checklist-reactpress#7-core-web-vitals-%E4%B8%8E%E5%AA%92%E4%BD%93" class="hash-link" aria-label="7. Core Web Vitals 与媒体的直接链接" title="7. Core Web Vitals 与媒��体的直接链接" translate="no">​</a></h2>
<ul class="contains-task-list containsTaskList_LK5o">
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->LCP：头图/文章图尺寸正确并优先加载</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->CLS：图片/嵌入指定尺寸</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->INP：文章页避免沉重第三方脚本</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->尽量 WebP/AVIF</li>
</ul>
<p>ReactPress <strong>image-optimizer</strong> 插件可辅助批量 WebP — 再配合主题里合理的 <code>next/image</code>。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="8-信息架构与内链">8. 信息架构与内链<a href="https://reactpress.cc/zh/blog/nextjs-blog-seo-checklist-reactpress#8-%E4%BF%A1%E6%81%AF%E6%9E%B6%E6%9E%84%E4%B8%8E%E5%86%85%E9%93%BE" class="hash-link" aria-label="8. 信息架构与内链的直接链接" title="8. 信息架构与内链的直接链接" translate="no">​</a></h2>
<ul class="contains-task-list containsTaskList_LK5o">
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->清晰的枢纽页（是什么 / 对比 / 快速开始）</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->文章链到支柱文档；文档链回文章</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->锚文本有语义 — 不要「点击这里」</li>
</ul>
<p>建议每篇 SEO 文都链到：</p>
<ul>
<li class=""><a class="" href="https://reactpress.cc/zh/docs/getting-started/what-is-reactpress">ReactPress 是什么？</a></li>
<li class=""><a class="" href="https://reactpress.cc/zh/docs/getting-started/reactpress-vs-wordpress">对比 WordPress</a></li>
<li class=""><a class="" href="https://reactpress.cc/zh/docs/getting-started/self-hosted-cms-for-react">自托管 CMS</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="9-cms-主题的性能预算">9. CMS 主题的性能预算<a href="https://reactpress.cc/zh/blog/nextjs-blog-seo-checklist-reactpress#9-cms-%E4%B8%BB%E9%A2%98%E7%9A%84%E6%80%A7%E8%83%BD%E9%A2%84%E7%AE%97" class="hash-link" aria-label="9. CMS 主题的性能预算的直接链接" title="9. CMS 主题的性能预算的直接链接" translate="no">​</a></h2>
<table><thead><tr><th>预算</th><th>目标</th></tr></thead><tbody><tr><td>Lighthouse Performance（移动）</td><td>文章模板 ≥ 90</td></tr><tr><td>关键路径 JS</td><td>优先 RSC/SSR；延后分析脚本</td></tr><tr><td>字体</td><td><code>font-display: swap</code>；子集化</td></tr></tbody></table>
<p>主题指引：<a class="" href="https://reactpress.cc/zh/docs/user-guide/appearance-themes">外观与主题</a> · <a class="" href="https://reactpress.cc/zh/docs/developer-guide/theme-development">主题开发</a>。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="10-上线核验">10. 上线核验<a href="https://reactpress.cc/zh/blog/nextjs-blog-seo-checklist-reactpress#10-%E4%B8%8A%E7%BA%BF%E6%A0%B8%E9%AA%8C" class="hash-link" aria-label="10. 上线核验的直接链接" title="10. 上线核验的直接链接" translate="no">​</a></h2>
<ol>
<li class=""><code>curl -I</code> 生产 URL — 200、缓存头正确</li>
<li class="">查看源代码 — <strong>不跑 JS</strong> 也能看到 title/meta</li>
<li class="">Search Console 覆盖率 — 修被 robots 排除的意外</li>
<li class="">对比预发与生产的 canonical 主机</li>
</ol>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="reactpress-对-seo-有帮助的默认项">ReactPress 对 SEO 有帮助的默认项<a href="https://reactpress.cc/zh/blog/nextjs-blog-seo-checklist-reactpress#reactpress-%E5%AF%B9-seo-%E6%9C%89%E5%B8%AE%E5%8A%A9%E7%9A%84%E9%BB%98%E8%AE%A4%E9%A1%B9" class="hash-link" aria-label="ReactPress 对 SEO 有帮助的默认项的直接链接" title="ReactPress 对 SEO 有帮助的默认项的直接链接" translate="no">​</a></h2>
<table><thead><tr><th>关注点</th><th>ReactPress 做法</th></tr></thead><tbody><tr><td>SSR 博客</td><td>官方 Next.js 主题</td></tr><tr><td>编辑 meta</td><td>Admin 中的 SEO 插件</td></tr><tr><td>定制前端 API</td><td>Headless REST</td></tr><tr><td>本地快速验证</td><td><code>reactpress init</code> 约 60 秒</td></tr></tbody></table>
<div class="language-bash codeBlockContainer_JGC8 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_JA40"><pre tabindex="0" class="prism-code language-bash codeBlock_tiUZ thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_tulI"><div class="token-line" style="color:#393A34"><span class="token plain">npm i -g @fecommunity/reactpress</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">mkdir my-blog &amp;&amp; cd my-blog</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">reactpress init</span><br></div></code></pre></div></div>
<p>更多：<a class="" href="https://reactpress.cc/zh/blog/self-hosted-nextjs-cms-blog-guide">自托管 Next.js CMS 指南</a> · <a class="" href="https://reactpress.cc/zh/blog/wordpress-alternatives-for-react-developers-2026">面向 React 的 WordPress 替代</a>。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="常见问题">常见问题<a href="https://reactpress.cc/zh/blog/nextjs-blog-seo-checklist-reactpress#%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98" class="hash-link" aria-label="常见问题的直接链接" title="常见问题的直接链接" translate="no">​</a></h2>
<p><strong>App Router 会改变这份清单吗？</strong><br>
<!-- -->不会 — 爬虫仍需要有意义的 HTML 与 metadata API（如 <code>generateMetadata</code>）。</p>
<p><strong>Headless CMS 对 SEO 够用吗？</strong><br>
<!-- -->只有当你的 Next 应用实现了清单才够。CMS 本身不会排名。</p>
<p><strong>ReactPress SEO 在哪配置？</strong><br>
<a class="" href="https://reactpress.cc/zh/docs/user-guide/site-settings-seo">站点设置与 SEO</a>。</p>
<blockquote>
<p><a href="https://reactpress.cc/zh/blog/nextjs-blog-seo-checklist-reactpress" target="_blank" rel="noopener noreferrer" class="">English</a></p>
</blockquote>]]></content>
        <author>
            <name>reactpress</name>
            <uri>https://github.com/fecommunity/reactpress</uri>
        </author>
        <category label="文章" term="文章"/>
        <category label="ReactPress" term="ReactPress"/>
        <category label="Next.js" term="Next.js"/>
        <category label="React CMS" term="React CMS"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[2026 年面向 React 开发者的 WordPress 替代方案]]></title>
        <id>https://reactpress.cc/zh/blog/wordpress-alternatives-for-react-developers-2026</id>
        <link href="https://reactpress.cc/zh/blog/wordpress-alternatives-for-react-developers-2026"/>
        <updated>2026-07-28T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[在找为 React 打造的 WordPress 替代？对比 ReactPress、Headless CMS、Next.js + MDX 与 Headless WordPress，按团队情况选对技术栈。]]></summary>
        <content type="html"><![CDATA[<p><img decoding="async" loading="lazy" alt="ReactPress — The Modern Web Creation Platform." src="https://reactpress.cc/zh/assets/images/poster-462f00e3a7be539131b5e1d3cfea7b96.png" width="4340" height="2860" class="img_hKc8"></p>
<p>WordPress 仍占据很大份额。但对 <strong>React 开发者</strong>来说，痛点很熟悉：PHP 主题、插件体积、以及与产品其他部分不一致的前端栈。</p>
<p>本指南梳理 <strong>2026 年面向 React 团队的务实 WordPress 替代方案</strong> — 各自真正交付什么，以及何时 <strong>ReactPress</strong> 是更好的默认选择。</p>
<p><strong>相关：</strong> <a class="" href="https://reactpress.cc/zh/docs/getting-started/reactpress-vs-wordpress">ReactPress vs WordPress</a> · <a class="" href="https://reactpress.cc/zh/docs/getting-started/what-is-reactpress">ReactPress 是什么？</a> · <a class="" href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4">长文：为什么 React 还没有自己的 WordPress</a></p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="react-团队通常想从-wp-替代里得到什么">React 团队通常想从 WP 替代里得到什么<a href="https://reactpress.cc/zh/blog/wordpress-alternatives-for-react-developers-2026#react-%E5%9B%A2%E9%98%9F%E9%80%9A%E5%B8%B8%E6%83%B3%E4%BB%8E-wp-%E6%9B%BF%E4%BB%A3%E9%87%8C%E5%BE%97%E5%88%B0%E4%BB%80%E4%B9%88" class="hash-link" aria-label="React 团队通常想从 WP 替代里得到什么的直接链接" title="React 团队通常想从 WP 替代里得到什么的直接链接" translate="no">​</a></h2>
<ol>
<li class=""><strong>熟悉的发布体验</strong> — 文章、页面、媒体、角色</li>
<li class=""><strong>现代交付</strong> — React / Next.js SSR，而不是 PHP 模板</li>
<li class=""><strong>可选 Headless</strong> — 给应用 API，同时保留 Admin</li>
<li class=""><strong>自托管或清晰许可</strong> — MIT/开源，少突袭式锁定</li>
<li class=""><strong>上线时间</strong> — 小时级，而不是一个季度</li>
</ol>
<p>很少有工具五项全中。下面看常见选项如何得分。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="1-reactpress--面向-react-的发布平台">1. ReactPress — 面向 React 的发布平台<a href="https://reactpress.cc/zh/blog/wordpress-alternatives-for-react-developers-2026#1-reactpress--%E9%9D%A2%E5%90%91-react-%E7%9A%84%E5%8F%91%E5%B8%83%E5%B9%B3%E5%8F%B0" class="hash-link" aria-label="1. ReactPress — 面向 React 的发布平台的直接链接" title="1. ReactPress — 面向 React 的发布平台的直接链接" translate="no">​</a></h2>
<p><strong>最适合：</strong> 要 WordPress 式工作流、又要 React 技术栈的团队。</p>
<table><thead><tr><th>你得到</th><th>说明</th></tr></thead><tbody><tr><td>Admin + API + Next.js 主题</td><td>一条 CLI：<code>reactpress init</code></td></tr><tr><td>插件 + 桌面客户端</td><td>4.0 Extend 线</td></tr><tr><td>Headless REST</td><td>默认开启</td></tr><tr><td>许可</td><td>MIT</td></tr></tbody></table>
<div class="language-bash codeBlockContainer_JGC8 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_JA40"><pre tabindex="0" class="prism-code language-bash codeBlock_tiUZ thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_tulI"><div class="token-line" style="color:#393A34"><span class="token plain">npm i -g @fecommunity/reactpress</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">mkdir my-site &amp;&amp; cd my-site</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">reactpress init</span><br></div></code></pre></div></div>
<p>试用教程：<a class="" href="https://reactpress.cc/zh/docs/getting-started/build-nextjs-blog-in-60-seconds">用 Next.js 60 秒搭建博客</a>。</p>
<p><strong>代价：</strong> 插件市场相对 WordPress 仍年轻。能用 JavaScript 扩展时，你会赢。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="2-headless-cmsstrapipayloadsanitycontentful">2. Headless CMS（Strapi、Payload、Sanity、Contentful）<a href="https://reactpress.cc/zh/blog/wordpress-alternatives-for-react-developers-2026#2-headless-cmsstrapipayloadsanitycontentful" class="hash-link" aria-label="2. Headless CMS（Strapi、Payload、Sanity、Contentful）的直接链接" title="2. Headless CMS（Strapi、Payload、Sanity、Contentful）的直接链接" translate="no">​</a></h2>
<p><strong>最适合：</strong> 多端内容 API，且 Next.js 站点是独立产品。</p>
<p><strong>代价：</strong> 仍需自建访客站、SEO 管道，常还有预览。见 <a class="" href="https://reactpress.cc/zh/blog/reactpress-vs-strapi-payload-headless-cms">ReactPress vs Strapi vs Payload</a>。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="3-nextjs--mdx--contentlayer--velite">3. Next.js + MDX / Contentlayer / Velite<a href="https://reactpress.cc/zh/blog/wordpress-alternatives-for-react-developers-2026#3-nextjs--mdx--contentlayer--velite" class="hash-link" aria-label="3. Next.js + MDX / Contentlayer / Velite的直接链接" title="3. Next.js + MDX / Contentlayer / Velite的直接链接" translate="no">​</a></h2>
<p><strong>最适合：</strong> <strong>Git 即 CMS</strong>、每位作者都是开发者的文档与博客。</p>
<p><strong>代价：</strong> 非技术编辑吃力；媒体库/评论需另接服务。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="4-headless-wordpress--nextjs-前端">4. Headless WordPress + Next.js 前端<a href="https://reactpress.cc/zh/blog/wordpress-alternatives-for-react-developers-2026#4-headless-wordpress--nextjs-%E5%89%8D%E7%AB%AF" class="hash-link" aria-label="4. Headless WordPress + Next.js 前端的直接链接" title="4. Headless WordPress + Next.js 前端的直接链接" translate="no">​</a></h2>
<p><strong>最适合：</strong> 保留 Gutenberg/编辑插件，同时用 React 重建公开站。</p>
<p><strong>代价：</strong> 要运维 <strong>两套</strong>复杂系统（WP + Next），同步/预览故事并不轻松。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="5-ghosthashnodebeehiiv-等">5. Ghost、Hashnode、Beehiiv 等<a href="https://reactpress.cc/zh/blog/wordpress-alternatives-for-react-developers-2026#5-ghosthashnodebeehiiv-%E7%AD%89" class="hash-link" aria-label="5. Ghost、Hashnode、Beehiiv 等的直接链接" title="5. Ghost、Hashnode、Beehiiv 等的直接链接" translate="no">​</a></h2>
<p><strong>最适合：</strong> 邮件通讯与纯博客、偏托管便利。</p>
<p><strong>代价：</strong> 作为文档 + 营销 + 定制应用的通用 React CMS 不够理想；托管与数据控制因产品而异。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="对比快照">对比快照<a href="https://reactpress.cc/zh/blog/wordpress-alternatives-for-react-developers-2026#%E5%AF%B9%E6%AF%94%E5%BF%AB%E7%85%A7" class="hash-link" aria-label="对比快照的直接链接" title="对比快照的直接链接" translate="no">​</a></h2>
<table><thead><tr><th>方案</th><th>编辑体验</th><th>React/Next 交付</th><th>自托管</th><th>拼装成本</th></tr></thead><tbody><tr><td><strong>ReactPress</strong></td><td>Admin，Markdown 优先</td><td>官方 Next 主题</td><td>是</td><td>低</td></tr><tr><td><strong>Strapi / Payload</strong></td><td>强 Admin</td><td>需自建</td><td>是（自托管版）</td><td>高</td></tr><tr><td><strong>Git 中的 MDX</strong></td><td>PR / IDE</td><td>优秀</td><td>是</td><td>中</td></tr><tr><td><strong>WP + Next</strong></td><td>Gutenberg</td><td>自建 Next</td><td>是</td><td>高</td></tr><tr><td><strong>托管博客 SaaS</strong></td><td>精致</td><td>有限</td><td>常常否</td><td>低</td></tr></tbody></table>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="何时继续留在-wordpress">何时继续留在 WordPress<a href="https://reactpress.cc/zh/blog/wordpress-alternatives-for-react-developers-2026#%E4%BD%95%E6%97%B6%E7%BB%A7%E7%BB%AD%E7%95%99%E5%9C%A8-wordpress" class="hash-link" aria-label="何时继续留在 WordPress的直接链接" title="何时继续留在 WordPress的直接链接" translate="no">​</a></h2>
<ul>
<li class="">编辑强依赖 WooCommerce、页面构建器或小众 WP 插件</li>
<li class="">主题/插件迁移成本高于继续用 PHP 的痛苦</li>
<li class="">需要一键式托管 WordPress</li>
</ul>
<p>否则，若公司其余部分都是 React，仅为营销站保留 PHP 通常是技术债。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="迁移草图wordpress--reactpress">迁移草图（WordPress → ReactPress）<a href="https://reactpress.cc/zh/blog/wordpress-alternatives-for-react-developers-2026#%E8%BF%81%E7%A7%BB%E8%8D%89%E5%9B%BEwordpress--reactpress" class="hash-link" aria-label="迁移草图（WordPress → ReactPress）的直接链接" title="迁移草图（WordPress → ReactPress）的直接链接" translate="no">​</a></h2>
<ol>
<li class="">导出文章（XML/API），经脚本或 Headless API 映射到 ReactPress</li>
<li class="">用 Next.js 重建主题（或从 <a href="https://github.com/fecommunity/reactpress-theme-starter" target="_blank" rel="noopener noreferrer" class="">theme-starter</a> 开始）</li>
<li class="">旧固定链接 301 到新路由</li>
<li class="">复查 sitemap、canonical 与 Core Web Vitals</li>
</ol>
<p>FAQ：<a class="" href="https://reactpress.cc/zh/docs/reference/faq">能否从 WordPress 迁移？</a></p>
<div class="theme-admonition theme-admonition-tip admonition_ZbkS alert alert--success"><div class="admonitionHeading_kwlI"><span class="admonitionIcon_Bp5B"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>名称消歧</div><div class="admonitionContent_wVdS"><p><strong>ReactPress</strong>（fecommunity）是 NestJS + Next.js 发布平台，<strong>不是</strong>把 React 应用嵌入现有 WP 站点的那个 WordPress 插件。</p></div></div>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="结论">结论<a href="https://reactpress.cc/zh/blog/wordpress-alternatives-for-react-developers-2026#%E7%BB%93%E8%AE%BA" class="hash-link" aria-label="结论的直接链接" title="结论的直接链接" translate="no">​</a></h2>
<p>对 <strong>2026 年的 React 开发者</strong>，最佳 WordPress 替代取决于你要的是<strong>内容 API</strong>还是<strong>发布平台</strong>。</p>
<ul>
<li class="">只要 API → Strapi / Payload</li>
<li class="">只要 Git 文档 → MDX</li>
<li class="">想像 WordPress 一样发布、用 Next.js 交付 → <strong>ReactPress</strong></li>
</ul>
<p>从这里开始：<a class="" href="https://reactpress.cc/zh/docs/getting-started/reactpress-vs-wordpress">ReactPress vs WordPress（2026）</a>。</p>
<blockquote>
<p><a href="https://reactpress.cc/zh/blog/wordpress-alternatives-for-react-developers-2026" target="_blank" rel="noopener noreferrer" class="">English</a></p>
</blockquote>]]></content>
        <author>
            <name>reactpress</name>
            <uri>https://github.com/fecommunity/reactpress</uri>
        </author>
        <category label="文章" term="文章"/>
        <category label="ReactPress" term="ReactPress"/>
        <category label="WordPress 替代" term="WordPress 替代"/>
        <category label="React CMS" term="React CMS"/>
        <category label="Next.js" term="Next.js"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[自托管 Next.js 博客 CMS 实战指南（2026）]]></title>
        <id>https://reactpress.cc/zh/blog/self-hosted-nextjs-cms-blog-guide</id>
        <link href="https://reactpress.cc/zh/blog/self-hosted-nextjs-cms-blog-guide"/>
        <updated>2026-07-24T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[2026 年如何自托管带真实 CMS 的 Next.js 博客 — SQLite 或 MySQL、SSR SEO、Admin 编辑与数据主权。 为什么 ReactPress 优于 DIY Strapi + starter 拼装。]]></summary>
        <content type="html"><![CDATA[<p><img decoding="async" loading="lazy" alt="ReactPress — The Modern Web Creation Platform." src="https://reactpress.cc/zh/assets/images/poster-462f00e3a7be539131b5e1d3cfea7b96.png" width="4340" height="2860" class="img_hKc8"></p>
<p>「我们要一个<strong>自托管的 Next.js 博客</strong>」听起来简单。实操上往往会拆成三个项目：CMS、Admin、主题 — 外加备份、SEO 与鉴权。本指南给出一条<strong>务实的 2026 路径</strong>：数据留在自有基础设施上，体验仍像产品，而不是周末硬拼。</p>
<p><strong>一句话：</strong> 用已经接好 Admin + API + Next.js 主题的发布平台。<strong>ReactPress</strong> 的 <code>reactpress init</code> 约 <strong>60 秒</strong>拉起本地栈，默认 <strong>SQLite</strong>（无需 Docker）。</p>
<p><strong>相关文档：</strong> <a class="" href="https://reactpress.cc/zh/docs/getting-started/self-hosted-cms-for-react">面向 React 的自托管 CMS</a> · <a class="" href="https://reactpress.cc/zh/docs/getting-started/build-nextjs-blog-in-60-seconds">60 秒 Next.js 博客</a> · <a class="" href="https://reactpress.cc/zh/docs/tutorial-basics/deploy-your-site">生产部署</a></p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="自托管-nextjs-cms应包含什么">「自托管 Next.js CMS」应包含什么<a href="https://reactpress.cc/zh/blog/self-hosted-nextjs-cms-blog-guide#%E8%87%AA%E6%89%98%E7%AE%A1-nextjs-cms%E5%BA%94%E5%8C%85%E5%90%AB%E4%BB%80%E4%B9%88" class="hash-link" aria-label="「自托管 Next.js CMS」应包含什么的直接链接" title="「自托管 Next.js CMS」应包含什么的直接链接" translate="no">​</a></h2>
<table><thead><tr><th>层级</th><th>为什么重要</th></tr></thead><tbody><tr><td><strong>Next.js 访客站</strong></td><td>SSR/ISR 支撑 SEO 与 Core Web Vitals</td></tr><tr><td><strong>Admin</strong></td><td>非 Git 的编辑发布</td></tr><tr><td><strong>API / 数据库</strong></td><td>你能掌控的持久内容</td></tr><tr><td><strong>媒体</strong></td><td>上传到本地磁盘或对象存储</td></tr><tr><td><strong>SEO 管道</strong></td><td>标题、canonical、sitemap、OG</td></tr><tr><td><strong>运维</strong></td><td>备份、doctor/logs、反代</td></tr></tbody></table>
<p>少任何一层，你又回到 Strapi + <code>create-next-app</code> + 自研上传路由。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="方案-a--diy灵活慢">方案 A — DIY（灵活，慢）<a href="https://reactpress.cc/zh/blog/self-hosted-nextjs-cms-blog-guide#%E6%96%B9%E6%A1%88-a--diy%E7%81%B5%E6%B4%BB%E6%85%A2" class="hash-link" aria-label="方案 A — DIY（灵活，慢）的直接链接" title="方案 A — DIY（灵活，慢）的直接链接" translate="no">​</a></h2>
<p>典型栈：</p>
<ol>
<li class="">Strapi / Payload / 仓库里的 MDX</li>
<li class="">自建 Next.js App Router 站点</li>
<li class="">预览模式、Webhook 重建、图片流水线</li>
<li class="">自研鉴权与角色</li>
</ol>
<p><strong>优点：</strong> 控制力最大。<strong>缺点：</strong> 编辑能安全发文前可能要数周；每个 CVE 与升级都归你。</p>
<p>DIY 适合平台团队，对公司博客往往过贵。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="方案-b--reactpress产品化自托管">方案 B — ReactPress（产品化自托管）<a href="https://reactpress.cc/zh/blog/self-hosted-nextjs-cms-blog-guide#%E6%96%B9%E6%A1%88-b--reactpress%E4%BA%A7%E5%93%81%E5%8C%96%E8%87%AA%E6%89%98%E7%AE%A1" class="hash-link" aria-label="方案 B — ReactPress（产品化自托管）的直接链接" title="方案 B — ReactPress（产品化自托管）的直接链接" translate="no">​</a></h2>
<p>ReactPress 是面向 React 开发者的开源<strong>发布系统</strong>：</p>
<ul>
<li class="">NestJS API（默认 Headless REST）</li>
<li class="">Vite Admin（文章、页面、媒体、评论、主题、插件）</li>
<li class="">带 SSR SEO 的 Next.js 主题</li>
<li class="">Hook 插件（SEO、摘要、图片优化等）</li>
<li class="">可选 Electron 桌面端离线写作</li>
</ul>
<div class="language-bash codeBlockContainer_JGC8 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_JA40"><pre tabindex="0" class="prism-code language-bash codeBlock_tiUZ thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_tulI"><div class="token-line" style="color:#393A34"><span class="token plain">npm i -g @fecommunity/reactpress</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">mkdir my-blog &amp;&amp; cd my-blog</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">reactpress init</span><br></div></code></pre></div></div>
<table><thead><tr><th>界面</th><th>地址</th></tr></thead><tbody><tr><td>博客</td><td><a href="http://localhost:3001/" target="_blank" rel="noopener noreferrer" class="">http://localhost:3001</a></td></tr><tr><td>Admin</td><td><a href="http://localhost:3001/admin/" target="_blank" rel="noopener noreferrer" class="">http://localhost:3001/admin/</a></td></tr><tr><td>API</td><td><a href="http://localhost:3002/api" target="_blank" rel="noopener noreferrer" class="">http://localhost:3002/api</a></td></tr></tbody></table>
<p>默认账号：请立即修改 <code>admin</code> / <code>admin</code>。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="自托管的数据库选择">自托管的数据库选择<a href="https://reactpress.cc/zh/blog/self-hosted-nextjs-cms-blog-guide#%E8%87%AA%E6%89%98%E7%AE%A1%E7%9A%84%E6%95%B0%E6%8D%AE%E5%BA%93%E9%80%89%E6%8B%A9" class="hash-link" aria-label="自托管的数据库选择的直接链接" title="自托管的数据库选择的直接链接" translate="no">​</a></h2>
<table><thead><tr><th>阶段</th><th>建议</th></tr></thead><tbody><tr><td>笔记本 / 小站</td><td><strong>SQLite</strong>（默认）— 零运维</td></tr><tr><td>增长 / 共享库</td><td><strong>MySQL</strong></td></tr><tr><td>容器</td><td><a class="" href="https://reactpress.cc/zh/docs/tutorial-extras/docker-deployment">Docker 指南</a></td></tr></tbody></table>
<p>务必备份<strong>数据库 + <code>uploads/</code></strong>。配置说明：<a class="" href="https://reactpress.cc/zh/docs/tutorial-extras/config-intro">配置项</a>。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="自托管-nextjs-博客-seo-清单">自托管 Next.js 博客 SEO 清单<a href="https://reactpress.cc/zh/blog/self-hosted-nextjs-cms-blog-guide#%E8%87%AA%E6%89%98%E7%AE%A1-nextjs-%E5%8D%9A%E5%AE%A2-seo-%E6%B8%85%E5%8D%95" class="hash-link" aria-label="自托管 Next.js 博客 SEO 清单的直接链接" title="自托管 Next.js 博客 SEO 清单的直接链接" translate="no">​</a></h2>
<ol>
<li class="">启用 <strong>SEO 插件</strong>并填写单篇 meta</li>
<li class="">确认主题 <code>/sitemap.xml</code> 与 <code>robots.txt</code></li>
<li class="">生产环境写好公网站点 URL</li>
<li class="">使用 SSR/ISR — 避免纯客户端文章页</li>
<li class="">压缩图片（内置 image-optimizer 可辅助）</li>
</ol>
<p>详情：<a class="" href="https://reactpress.cc/zh/docs/user-guide/site-settings-seo">站点设置与 SEO</a>。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="生产环境提纲">生产环境提纲<a href="https://reactpress.cc/zh/blog/self-hosted-nextjs-cms-blog-guide#%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E6%8F%90%E7%BA%B2" class="hash-link" aria-label="生产环境提纲的直接链接" title="生产环境提纲的直接链接" translate="no">​</a></h2>
<ol>
<li class="">VPS 或 Node 主机 + 反代（Caddy/Nginx）</li>
<li class="">进程管理或 Docker 跑 API + 主题</li>
<li class="">TLS、限制 Admin 暴露、轮换密钥</li>
<li class="">定时备份 DB + uploads</li>
<li class="">部署后跑 <code>reactpress doctor</code></li>
</ol>
<p>完整指南：<a class="" href="https://reactpress.cc/zh/docs/tutorial-basics/deploy-your-site">生产环境部署</a>。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="自托管-vs-saas">自托管 vs SaaS<a href="https://reactpress.cc/zh/blog/self-hosted-nextjs-cms-blog-guide#%E8%87%AA%E6%89%98%E7%AE%A1-vs-saas" class="hash-link" aria-label="自托管 vs SaaS的直接链接" title="自托管 vs SaaS的直接链接" translate="no">​</a></h2>
<table><thead><tr><th></th><th>自托管 ReactPress</th><th>SaaS Headless</th></tr></thead><tbody><tr><td>数据驻留</td><td>你的磁盘 / 你的库</td><td>厂商云</td></tr><tr><td>成本模型</td><td>仅基础设施（MIT 软件）</td><td>席位 + API + 流量</td></tr><tr><td>访客站</td><td>内置 Next 主题</td><td>通常另建</td></tr><tr><td>离线写作</td><td>桌面客户端</td><td>少见</td></tr></tbody></table>
<p>要零运维选 SaaS；要<strong>数据主权与 React 栈统一</strong>选自托管。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="常见问题">常见问题<a href="https://reactpress.cc/zh/blog/self-hosted-nextjs-cms-blog-guide#%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98" class="hash-link" aria-label="常见问题的直接链接" title="常见问题的直接链接" translate="no">​</a></h2>
<p><strong>需要 Kubernetes 吗？</strong><br>
<!-- -->不需要。很多博客跑在单台 VM 上。</p>
<p><strong>能保留自己的 Next.js 应用吗？</strong><br>
<!-- -->可以 — Headless API + API Key。见 <a class="" href="https://reactpress.cc/zh/docs/developer-guide/headless-api">Headless API</a>。</p>
<p><strong>4.0 能上生产吗？</strong><br>
<!-- -->4.0.0 稳定版；从 3.x 升级请先预发。<a class="" href="https://reactpress.cc/zh/docs/reference/faq">FAQ</a> · <a class="" href="https://reactpress.cc/zh/docs/tutorial-extras/migration-3-to-4">3→4 迁移</a>。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="从这里开始">从这里开始<a href="https://reactpress.cc/zh/blog/self-hosted-nextjs-cms-blog-guide#%E4%BB%8E%E8%BF%99%E9%87%8C%E5%BC%80%E5%A7%8B" class="hash-link" aria-label="从这里开始的直接链接" title="从这里开始的直接链接" translate="no">​</a></h2>
<div class="language-bash codeBlockContainer_JGC8 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_JA40"><pre tabindex="0" class="prism-code language-bash codeBlock_tiUZ thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_tulI"><div class="token-line" style="color:#393A34"><span class="token plain">npm i -g @fecommunity/reactpress</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">mkdir my-blog &amp;&amp; cd my-blog</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">reactpress init</span><br></div></code></pre></div></div>
<p>接着阅读 <a class="" href="https://reactpress.cc/zh/docs/getting-started/what-is-reactpress">ReactPress 是什么？</a> 与 <a class="" href="https://reactpress.cc/zh/docs/getting-started/self-hosted-cms-for-react">面向 React 的自托管 CMS</a>。</p>
<blockquote>
<p><a href="https://reactpress.cc/zh/blog/self-hosted-nextjs-cms-blog-guide" target="_blank" rel="noopener noreferrer" class="">English</a></p>
</blockquote>]]></content>
        <author>
            <name>reactpress</name>
            <uri>https://github.com/fecommunity/reactpress</uri>
        </author>
        <category label="文章" term="文章"/>
        <category label="ReactPress" term="ReactPress"/>
        <category label="React CMS" term="React CMS"/>
        <category label="自托管" term="自托管"/>
        <category label="Next.js" term="Next.js"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[ReactPress vs Strapi vs Payload — 何时你需要的不只是 Headless CMS]]></title>
        <id>https://reactpress.cc/zh/blog/reactpress-vs-strapi-payload-headless-cms</id>
        <link href="https://reactpress.cc/zh/blog/reactpress-vs-strapi-payload-headless-cms"/>
        <updated>2026-07-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[为 React 团队对比 ReactPress、Strapi 与 Payload。弄清何时只要 Headless API 就够， 何时需要带 Admin、Next.js 主题与 SEO 的完整发布平台。]]></summary>
        <content type="html"><![CDATA[<p><img decoding="async" loading="lazy" alt="ReactPress — The Modern Web Creation Platform." src="https://reactpress.cc/zh/assets/images/poster-462f00e3a7be539131b5e1d3cfea7b96.png" width="4340" height="2860" class="img_hKc8"></p>
<p>如果团队以 <strong>React / Next.js</strong> 为主栈，内容基础设施候选往往是：<strong>Strapi</strong>、<strong>Payload</strong>，再加上 Contentful 或 Sanity — 然后有人问：<em>「博客本身放哪？」</em></p>
<p>这个问题暴露了品类缺口。<strong>Headless CMS</strong> 擅长内容 API 与后台建模，但<strong>不会</strong>把访客向 Next.js 站点、WordPress 式发布流程、主题 catalog 与 SEO 流水线作为<strong>同一个产品</strong>交付。</p>
<p><strong>ReactPress</strong> 站在缺口另一侧：面向 React 开发者的<strong>发布系统</strong> — Admin + NestJS API + Next.js 主题 + 插件 + 桌面端 — 同时默认提供 Headless REST。</p>
<p>本文对比 <strong>ReactPress vs Strapi vs Payload</strong>，帮你选对系统形态，而不是只追最潮的 API。</p>
<p><strong>相关文档：</strong> <a class="" href="https://reactpress.cc/zh/docs/getting-started/what-is-reactpress">ReactPress 是什么？</a> · <a class="" href="https://reactpress.cc/zh/docs/developer-guide/headless-api">Headless API</a> · <a class="" href="https://reactpress.cc/zh/docs/getting-started/reactpress-vs-wordpress">对比 WordPress</a></p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="快速对比">快速对比<a href="https://reactpress.cc/zh/blog/reactpress-vs-strapi-payload-headless-cms#%E5%BF%AB%E9%80%9F%E5%AF%B9%E6%AF%94" class="hash-link" aria-label="快速对比的直接链接" title="快速对比的直接链接" translate="no">​</a></h2>
<table><thead><tr><th></th><th>ReactPress</th><th>Strapi</th><th>Payload</th></tr></thead><tbody><tr><td><strong>主要交付</strong></td><td>完整发布平台</td><td>Headless CMS / API</td><td>Headless CMS（Next 原生 Admin）</td></tr><tr><td><strong>访客站</strong></td><td>官方 Next.js 主题</td><td>需自建</td><td>需自建（或自行组合）</td></tr><tr><td><strong>Admin</strong></td><td>文章、媒体、主题、插件</td><td>Content-type 构建器</td><td>Collections + Admin UI</td></tr><tr><td><strong>默认栈</strong></td><td>NestJS + Vite Admin + Next 主题</td><td>Node + Admin</td><td>Next.js Admin + 你的应用</td></tr><tr><td><strong>开箱 SEO</strong></td><td>主题 SSR + SEO 插件</td><td>取决于你的前端</td><td>取决于你的前端</td></tr><tr><td><strong>公开博客上线</strong></td><td>CLI 约 60 秒</td><td>通常数天到数周</td><td>通常数天到数周</td></tr><tr><td><strong>最适合</strong></td><td>想发布，而不是拼装</td><td>只要 API</td><td>要 TS 优先的 Next Headless</td></tr></tbody></table>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="headless-cms-擅长什么">Headless CMS 擅长什么<a href="https://reactpress.cc/zh/blog/reactpress-vs-strapi-payload-headless-cms#headless-cms-%E6%93%85%E9%95%BF%E4%BB%80%E4%B9%88" class="hash-link" aria-label="Headless CMS 擅长什么的直接链接" title="Headless CMS 擅长什么的直接链接" translate="no">​</a></h2>
<p>Strapi、Payload（及同类）在这些场景很强：</p>
<ul>
<li class="">多端（Web、App、终端）共享一套内容 API</li>
<li class="">设计系统 / Next 应用本身就是产品</li>
<li class="">编辑只需结构化字段 — 不需要主题市场</li>
<li class="">你愿意自建 SSR、sitemap、OG、预览与部署胶水</li>
</ul>
<p>若这就是现状，Headless CMS 常常是正确选择。ReactPress 并不想取代每一个 Strapi 部署。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="headless-留下的空洞">Headless 留下的空洞<a href="https://reactpress.cc/zh/blog/reactpress-vs-strapi-payload-headless-cms#headless-%E7%95%99%E4%B8%8B%E7%9A%84%E7%A9%BA%E6%B4%9E" class="hash-link" aria-label="Headless 留下的空洞的直接链接" title="Headless 留下的空洞的直接链接" translate="no">​</a></h2>
<p>营销站与工程博客仍需要：</p>
<ol>
<li class="">能排名的<strong>公开站点</strong>（SSR/ISR、Core Web Vitals）</li>
<li class="">接近「写作 → 发布 → 立刻可见」的<strong>编辑体验</strong></li>
<li class=""><strong>媒体、评论、SEO meta</strong>，以及常要的桌面/离线路径</li>
<li class="">不必重写 CMS 就能换的主题</li>
</ol>
<p>用 Strapi/Payload 时你要自己拼这些层。很多团队低估拼装成本 — 最后变成三个仓库，连 sitemap 都没有。</p>
<p>ReactPress 用一条 CLI 把这些层接好：</p>
<div class="language-bash codeBlockContainer_JGC8 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_JA40"><pre tabindex="0" class="prism-code language-bash codeBlock_tiUZ thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_tulI"><div class="token-line" style="color:#393A34"><span class="token plain">npm i -g @fecommunity/reactpress</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">mkdir my-site &amp;&amp; cd my-site</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">reactpress init</span><br></div></code></pre></div></div>
<ul>
<li class="">访客站（Next.js）：<a href="http://localhost:3001/" target="_blank" rel="noopener noreferrer" class="">http://localhost:3001</a></li>
<li class="">Admin：<a href="http://localhost:3001/admin/" target="_blank" rel="noopener noreferrer" class="">http://localhost:3001/admin/</a></li>
<li class="">API：<a href="http://localhost:3002/api/health" target="_blank" rel="noopener noreferrer" class="">http://localhost:3002/api/health</a></li>
</ul>
<p>教程：<a class="" href="https://reactpress.cc/zh/docs/getting-started/build-nextjs-blog-in-60-seconds">用 Next.js 60 秒搭建博客</a>。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="reactpress包含-headless但不只是-headless">ReactPress：包含 Headless，但不只是 Headless<a href="https://reactpress.cc/zh/blog/reactpress-vs-strapi-payload-headless-cms#reactpress%E5%8C%85%E5%90%AB-headless%E4%BD%86%E4%B8%8D%E5%8F%AA%E6%98%AF-headless" class="hash-link" aria-label="ReactPress：包含 Headless，但不只是 Headless的直接链接" title="ReactPress：包含 Headless，但不只是 Headless的直接链接" translate="no">​</a></h2>
<p>ReactPress <strong>具备</strong> Headless 能力：</p>
<ul>
<li class="">文章、页面、分类等 REST 端点</li>
<li class="">API Key 与 Webhook</li>
<li class=""><code>@fecommunity/reactpress-toolkit</code> 类型化客户端</li>
</ul>
<p>但产品承诺更广：<strong>Admin 管内容 · 主题管呈现 · 插件管逻辑 · API 管数据</strong>。</p>
<p>用官方主题快速上线；需要定制前端时 fork <a href="https://github.com/fecommunity/reactpress-theme-starter" target="_blank" rel="noopener noreferrer" class="">reactpress-theme-starter</a> — 不必丢掉 Admin。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="选型指南">选型指南<a href="https://reactpress.cc/zh/blog/reactpress-vs-strapi-payload-headless-cms#%E9%80%89%E5%9E%8B%E6%8C%87%E5%8D%97" class="hash-link" aria-label="选型指南的直接链接" title="选型指南的直接链接" translate="no">​</a></h2>
<p><strong>选 Strapi 或 Payload：</strong> 你已有（或将自建）访客应用，CMS 应保持为纯内容后端。</p>
<p><strong>选 ReactPress：</strong> 你需要<strong>自托管的 React 发布栈</strong> — 博客/文档/营销站 — 带 SSR SEO 与可选 Headless，又不想重做 Admin + 主题 + SEO。</p>
<p><strong>仍在用 WordPress？</strong> 见 <a class="" href="https://reactpress.cc/zh/docs/getting-started/reactpress-vs-wordpress">ReactPress vs WordPress（2026）</a> 与长文 <a class="" href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4">为什么 React 还没有自己的 WordPress</a>。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="常见问题">常见问题<a href="https://reactpress.cc/zh/blog/reactpress-vs-strapi-payload-headless-cms#%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98" class="hash-link" aria-label="常见问题的直接链接" title="常见问题的直接链接" translate="no">​</a></h2>
<p><strong>ReactPress 是 Strapi 竞品吗？</strong><br>
<!-- -->部分重叠在内容 API。ReactPress 更像「WordPress + 现代前端」的对手，而不是纯 API CMS。</p>
<p><strong>可以只当 API 用吗？</strong><br>
<!-- -->可以。任意 React 应用对接 Headless API，忽略默认主题即可。</p>
<p><strong>Payload 比 ReactPress「更 Next.js」吗？</strong><br>
<!-- -->Payload 的 Admin 是 Next 原生；ReactPress 的<strong>访客</strong>主题是 Next.js，Admin 是 Vite SPA。切分不同，都对 React 友好。</p>
<p><strong>许可？</strong><br>
<!-- -->ReactPress 为 MIT。请自行核对 Strapi/Payload 版本与托管条款。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="下一步">下一步<a href="https://reactpress.cc/zh/blog/reactpress-vs-strapi-payload-headless-cms#%E4%B8%8B%E4%B8%80%E6%AD%A5" class="hash-link" aria-label="下一步的直接链接" title="下一步的直接链接" translate="no">​</a></h2>
<ul>
<li class=""><a class="" href="https://reactpress.cc/zh/docs/getting-started/what-is-reactpress">ReactPress 是什么？</a></li>
<li class=""><a class="" href="https://reactpress.cc/zh/docs/getting-started/self-hosted-cms-for-react">面向 React 的自托管 CMS</a></li>
<li class=""><a class="" href="https://reactpress.cc/zh/docs/developer-guide/headless-api">Headless API 指南</a></li>
<li class=""><a class="" href="https://reactpress.cc/zh/docs/developer-guide/theme-development">主题开发</a></li>
</ul>
<blockquote>
<p><a href="https://reactpress.cc/zh/blog/reactpress-vs-strapi-payload-headless-cms" target="_blank" rel="noopener noreferrer" class="">English</a></p>
</blockquote>]]></content>
        <author>
            <name>reactpress</name>
            <uri>https://github.com/fecommunity/reactpress</uri>
        </author>
        <category label="文章" term="文章"/>
        <category label="ReactPress" term="ReactPress"/>
        <category label="React CMS" term="React CMS"/>
        <category label="Headless CMS" term="Headless CMS"/>
        <category label="Next.js" term="Next.js"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[为什么 React 至今没有自己的 WordPress——以及我们为什么做了 ReactPress 4.0]]></title>
        <id>https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4</id>
        <link href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4"/>
        <updated>2026-07-12T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[React 统治前端十年，却始终没有默认的发布平台。本文从行业痛点、WordPress 成功基因、Headless CMS 缺口出发， 介绍开源 React 发布平台 ReactPress 4.0 的理念、架构、主题、插件、桌面端与路线图。]]></summary>
        <content type="html"><![CDATA[<p><img decoding="async" loading="lazy" alt="ReactPress — The Modern Web Creation Platform." src="https://reactpress.cc/zh/assets/images/poster-462f00e3a7be539131b5e1d3cfea7b96.png" width="4340" height="2860" class="img_hKc8"></p>
<p>如果你是一名前端工程师，大概率经历过这样的循环：</p>
<ol>
<li class="">团队决定用 <strong>React / Next.js</strong> 做官网或博客；</li>
<li class="">你评估 Strapi、Payload、Contentful、Sanity……各自都不错，但<strong>没有一个是「装完就能写、写完就能发」的完整发布平台</strong>；</li>
<li class="">你 fork Next.js 博客模板，接上 Headless 后端，再自己搭媒体库、评论、SEO、部署脚本；</li>
<li class="">三个月后博客还没上线，你却维护了五个仓库。</li>
</ol>
<p>与此同时，<strong>WordPress</strong> 依然占据全球 40%+ 的网站份额。PHP 被嘲笑「过时」，Gutenberg 被吐槽，可它仍是无数站长、内容团队、中小企业的默认选择。</p>
<p><strong>React 已经统治前端十年，为什么仍然没有自己的 WordPress？</strong></p>
<p>这不是技术能力问题，而是<strong>产品形态</strong>问题。过去三年我们反复听到同一个需求：「能不能像 WordPress 一样管内容，但前台用 Next.js？」现有方案要么只给 API，要么把 Admin 和主题焊死，要么需要 Docker + MySQL + 六个 npm 包才能写下第一段文字。</p>
<p>于是我们做了 <strong>ReactPress 4.0</strong>——面向 React 时代的<strong>开源发布平台（Open Source CMS / React Publishing Platform）</strong>，而不是又一个需要你自己拼装的 Headless 后端。</p>
<p><strong>SEO 关键词：</strong> React CMS · Next.js CMS · WordPress alternative · React publishing platform · Open source CMS</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="目录">目录<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E7%9B%AE%E5%BD%95" class="hash-link" aria-label="目录的直接链接" title="目录的直接链接" translate="no">​</a></h2>
<ol>
<li class=""><a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E4%B8%80%E5%8F%A5%E8%AF%9D%E6%80%BB%E7%BB%93" class="">一句话总结</a></li>
<li class=""><a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E4%B8%80%E8%A1%8C%E4%B8%9A%E9%97%AE%E9%A2%98" class="">行业问题</a></li>
<li class=""><a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E4%BA%8Cwordpress-%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%90%E5%8A%9F" class="">WordPress 为什么成功</a></li>
<li class=""><a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E4%B8%89react-%E7%94%9F%E6%80%81%E7%BC%BA%E5%A4%B1" class="">React 生态缺失</a></li>
<li class=""><a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%9B%9Breactpress-%E7%90%86%E5%BF%B5" class="">ReactPress 理念</a></li>
<li class=""><a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E4%BA%94%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84" class="">系统架构</a></li>
<li class=""><a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%85%AD%E7%9C%BC%E8%A7%81%E4%B8%BA%E5%AE%9E" class="">眼见为实</a></li>
<li class=""><a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E4%B8%83admin-%E5%86%99%E4%BD%9C%E7%95%8C%E9%9D%A2" class="">Admin 写作界面</a></li>
<li class=""><a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%85%AB%E4%B8%BB%E9%A2%98%E7%B3%BB%E7%BB%9F" class="">主题系统</a></li>
<li class=""><a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E4%B9%9D%E6%8F%92%E4%BB%B6%E7%B3%BB%E7%BB%9F" class="">插件系统</a></li>
<li class=""><a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%8D%81%E6%A1%8C%E9%9D%A2%E5%AE%A2%E6%88%B7%E7%AB%AF" class="">桌面客户端</a></li>
<li class=""><a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%8D%81%E4%B8%80headless-api" class="">Headless API</a></li>
<li class=""><a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%8D%81%E4%BA%8Cseo-%E4%B8%8E%E6%80%A7%E8%83%BD" class="">SEO 与性能</a></li>
<li class=""><a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%8D%81%E4%B8%89%E5%AE%89%E5%85%A8%E6%A8%A1%E5%9E%8B" class="">安全模型</a></li>
<li class=""><a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%8D%81%E5%9B%9B%E9%83%A8%E7%BD%B2%E6%A8%A1%E5%BC%8F" class="">部署模式</a></li>
<li class=""><a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%8D%81%E4%BA%94%E8%BF%81%E7%A7%BB%E8%B7%AF%E5%BE%84" class="">迁移路径</a></li>
<li class=""><a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%8D%81%E5%85%AD%E9%80%82%E7%94%A8%E5%9C%BA%E6%99%AF" class="">适用场景</a></li>
<li class=""><a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%8D%81%E4%B8%83%E8%B7%AF%E7%BA%BF%E5%9B%BE" class="">路线图</a></li>
<li class=""><a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%8D%81%E5%85%AB%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98" class="">常见问题</a></li>
<li class=""><a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%8D%81%E4%B9%9D%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B" class="">快速开始</a></li>
<li class=""><a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E4%BA%8C%E5%8D%81%E7%BB%93%E8%AF%AD" class="">结语</a></li>
</ol>
<blockquote>
<p><strong>关于本文：</strong> 中文完整版 · 与英文版结构对应 · 最后更新 2026-07-12 · <a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4" target="_blank" rel="noopener noreferrer" class="">English version</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="一句话总结">一句话总结<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E4%B8%80%E5%8F%A5%E8%AF%9D%E6%80%BB%E7%BB%93" class="hash-link" aria-label="一句话总结的直接链接" title="一句话总结的直接链接" translate="no">​</a></h2>
<table><thead><tr><th style="text-align:left">问题</th><th style="text-align:left">简短回答</th></tr></thead><tbody><tr><td style="text-align:left"><strong>ReactPress 是什么？</strong></td><td style="text-align:left">自托管 <strong>React 发布平台</strong>：NestJS API + Vite Admin + Next.js 主题 + Hook 插件 + CLI + Electron 桌面端</td></tr><tr><td style="text-align:left"><strong>是 Headless CMS 吗？</strong></td><td style="text-align:left">包含 Headless REST，但交付更多——访客站、Admin、扩展开箱即用</td></tr><tr><td style="text-align:left"><strong>WordPress 替代？</strong></td><td style="text-align:left">是，适合要 WordPress 式工作流 + 现代 React/Next.js 栈的团队</td></tr><tr><td style="text-align:left"><strong>多快能跑起来？</strong></td><td style="text-align:left"><code>npm i -g @fecommunity/reactpress</code> → <code>reactpress init</code> → 约 60 秒</td></tr><tr><td style="text-align:left"><strong>许可证</strong></td><td style="text-align:left">MIT——可 fork、自托管、商用</td></tr><tr><td style="text-align:left"><strong>当前版本</strong></td><td style="text-align:left">4.0（代号 <strong>Extend</strong>）——插件、桌面、npm 主题 catalog</td></tr></tbody></table>
<div class="language-bash codeBlockContainer_JGC8 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_JA40"><pre tabindex="0" class="prism-code language-bash codeBlock_tiUZ thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_tulI"><div class="token-line" style="color:#393A34"><span class="token plain">npm i -g @fecommunity/reactpress</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">mkdir my-site &amp;&amp; cd my-site</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">reactpress init</span><br></div></code></pre></div></div>
<table><thead><tr><th style="text-align:left">服务</th><th style="text-align:left">地址</th></tr></thead><tbody><tr><td style="text-align:left">访客站</td><td style="text-align:left"><a href="http://localhost:3001/" target="_blank" rel="noopener noreferrer" class="">http://localhost:3001</a></td></tr><tr><td style="text-align:left">Admin</td><td style="text-align:left"><a href="http://localhost:3001/admin/" target="_blank" rel="noopener noreferrer" class="">http://localhost:3001/admin/</a></td></tr><tr><td style="text-align:left">API</td><td style="text-align:left"><a href="http://localhost:3002/api/health" target="_blank" rel="noopener noreferrer" class="">http://localhost:3002/api/health</a></td></tr></tbody></table>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="一行业问题">一、行业问题<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E4%B8%80%E8%A1%8C%E4%B8%9A%E9%97%AE%E9%A2%98" class="hash-link" aria-label="一、行业问题的直接链接" title="一、行业问题的直接链接" translate="no">​</a></h2>
<p>现代内容系统逼你在<strong>编辑体验、前端自由度、开箱即用</strong>之间做取舍。</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="11-不可能三角">1.1 不可能三角<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#11-%E4%B8%8D%E5%8F%AF%E8%83%BD%E4%B8%89%E8%A7%92" class="hash-link" aria-label="1.1 不可能三角的直接链接" title="1.1 不可能三角的直接链接" translate="no">​</a></h3>
<table><thead><tr><th style="text-align:left">路径</th><th style="text-align:center">编辑</th><th style="text-align:center">前端自由</th><th style="text-align:center">开箱即用</th><th style="text-align:center">现代性能</th></tr></thead><tbody><tr><td style="text-align:left">WordPress</td><td style="text-align:center">✅</td><td style="text-align:center">❌</td><td style="text-align:center">✅</td><td style="text-align:center">△</td></tr><tr><td style="text-align:left">SSG / 纯 Next.js</td><td style="text-align:center">❌</td><td style="text-align:center">✅</td><td style="text-align:center">△</td><td style="text-align:center">✅</td></tr><tr><td style="text-align:left">Headless CMS</td><td style="text-align:center">△</td><td style="text-align:center">✅</td><td style="text-align:center">❌</td><td style="text-align:center">取决于前台</td></tr><tr><td style="text-align:left"><strong>理想的 React 发布平台</strong></td><td style="text-align:center">✅</td><td style="text-align:center">✅</td><td style="text-align:center">✅</td><td style="text-align:center">✅</td></tr></tbody></table>
<h4 class="anchor anchorTargetStickyNavbar_aIG4" id="wordpress-式-cms会写但跑不快">WordPress 式 CMS：会写，但跑不快<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#wordpress-%E5%BC%8F-cms%E4%BC%9A%E5%86%99%E4%BD%86%E8%B7%91%E4%B8%8D%E5%BF%AB" class="hash-link" aria-label="WordPress 式 CMS：会写，但跑不快的直接链接" title="WordPress 式 CMS：会写，但跑不快的直接链接" translate="no">​</a></h4>
<p>内容、主题、插件焊在 PHP 运行时里。对非技术用户友好，但 React 团队难以复用组件库，Headless 是后补路径，性能常依赖缓存插件。</p>
<h4 class="anchor anchorTargetStickyNavbar_aIG4" id="静态站点生成器快但没有真-cms">静态站点生成器：快，但没有真 CMS<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E9%9D%99%E6%80%81%E7%AB%99%E7%82%B9%E7%94%9F%E6%88%90%E5%99%A8%E5%BF%AB%E4%BD%86%E6%B2%A1%E6%9C%89%E7%9C%9F-cms" class="hash-link" aria-label="静态站点生成器：快，但没有真 CMS的直接链接" title="静态站点生成器：快，但没有真 CMS的直接链接" translate="no">​</a></h4>
<p>内容变更 = 开发者改 Markdown + CI 构建。运营无法独立发稿。</p>
<h4 class="anchor anchorTargetStickyNavbar_aIG4" id="headless-cms灵活但要自己组装整机">Headless CMS：灵活，但要自己组装整机<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#headless-cms%E7%81%B5%E6%B4%BB%E4%BD%86%E8%A6%81%E8%87%AA%E5%B7%B1%E7%BB%84%E8%A3%85%E6%95%B4%E6%9C%BA" class="hash-link" aria-label="Headless CMS：灵活，但要自己组装整机的直接链接" title="Headless CMS：灵活，但要自己组装整机的直接链接" translate="no">​</a></h4>
<p>Strapi、Payload 等把 API 做得很好，但通常<strong>不交付访客站和日常写作 UI</strong>。典型路径：选型 → 配 Schema → 写 Next.js 前台 → 做 SEO → 配媒体 → 写部署脚本——对「这周就要上线的博客」过重。</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="12-前端负责人的真实一周">1.2 前端负责人的真实一周<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#12-%E5%89%8D%E7%AB%AF%E8%B4%9F%E8%B4%A3%E4%BA%BA%E7%9A%84%E7%9C%9F%E5%AE%9E%E4%B8%80%E5%91%A8" class="hash-link" aria-label="1.2 前端负责人的真实一周的直接链接" title="1.2 前端负责人的真实一周的直接链接" translate="no">​</a></h3>
<p><strong>周一</strong> 产品要博客+SEO+运营发稿。<strong>周二</strong> 选定 Strapi，搭 Docker。<strong>周三</strong> 写 Next.js 前台。<strong>周四</strong> 做 sitemap/OG/评论。<strong>周五</strong> 部署四套 CI。 <strong>下周一</strong> 产品问：「什么时候能发文？」</p>
<p>问题不是某个工具差，而是<strong>没有人交付完整的发布闭环</strong>。ReactPress 要结束这个循环。</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="13-为什么再做一个-headless-cms不够">1.3 为什么「再做一个 Headless CMS」不够<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#13-%E4%B8%BA%E4%BB%80%E4%B9%88%E5%86%8D%E5%81%9A%E4%B8%80%E4%B8%AA-headless-cms%E4%B8%8D%E5%A4%9F" class="hash-link" aria-label="1.3 为什么「再做一个 Headless CMS」不够的直接链接" title="1.3 为什么「再做一个 Headless CMS」不够的直接链接" translate="no">​</a></h3>
<p>行业不缺 Headless，缺的是：</p>
<ol>
<li class="">默认就有的<strong>生产级访客站</strong></li>
<li class="">运营愿意每天打开的 <strong>Admin</strong></li>
<li class=""><strong>装插件</strong>而非 fork core 的扩展点</li>
<li class=""><code>doctor</code> 一条命令的诊断入口</li>
</ol>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="二wordpress-为什么成功">二、WordPress 为什么成功<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E4%BA%8Cwordpress-%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%90%E5%8A%9F" class="hash-link" aria-label="二、WordPress 为什么成功的直接链接" title="二、WordPress 为什么成功的直接链接" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="21-唯一入口零决策疲劳">2.1 唯一入口，零决策疲劳<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#21-%E5%94%AF%E4%B8%80%E5%85%A5%E5%8F%A3%E9%9B%B6%E5%86%B3%E7%AD%96%E7%96%B2%E5%8A%B3" class="hash-link" aria-label="2.1 唯一入口，零决策疲劳的直接链接" title="2.1 唯一入口，零决策疲劳的直接链接" translate="no">​</a></h3>
<p>下载 → 数据库 → <code>/wp-admin/</code>。<strong>一条路径</strong>。ReactPress 学习这一点：<code>reactpress init</code> 约 60 秒得整机。</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="22-core--theme--plugin-边界">2.2 Core / Theme / Plugin 边界<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#22-core--theme--plugin-%E8%BE%B9%E7%95%8C" class="hash-link" aria-label="2.2 Core / Theme / Plugin 边界的直接链接" title="2.2 Core / Theme / Plugin 边界的直接链接" translate="no">​</a></h3>
<table><thead><tr><th style="text-align:left">WordPress</th><th style="text-align:left">ReactPress</th><th style="text-align:left">职责</th></tr></thead><tbody><tr><td style="text-align:left">wp-admin</td><td style="text-align:left">Admin</td><td style="text-align:left">内容管理</td></tr><tr><td style="text-align:left">Theme</td><td style="text-align:left">themes/*</td><td style="text-align:left">访客 Next.js 站</td></tr><tr><td style="text-align:left">Plugin</td><td style="text-align:left">plugins/*</td><td style="text-align:left">Hook 扩展</td></tr><tr><td style="text-align:left">REST API</td><td style="text-align:left">/api/*</td><td style="text-align:left">Headless 默认开启</td></tr><tr><td style="text-align:left">—</td><td style="text-align:left">Desktop</td><td style="text-align:left">离线写作</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="23-插件生态即生命力">2.3 插件生态即生命力<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#23-%E6%8F%92%E4%BB%B6%E7%94%9F%E6%80%81%E5%8D%B3%E7%94%9F%E5%91%BD%E5%8A%9B" class="hash-link" aria-label="2.3 插件生态即生命力的直接链接" title="2.3 插件生态即生命力的直接链接" translate="no">​</a></h3>
<p>WordPress 60,000+ 插件。ReactPress 4.0 用 <code>plugin.json</code> + Hook 让扩展成为平台一等公民。</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="24-我们学习的与拒绝的">2.4 我们学习的与拒绝的<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#24-%E6%88%91%E4%BB%AC%E5%AD%A6%E4%B9%A0%E7%9A%84%E4%B8%8E%E6%8B%92%E7%BB%9D%E7%9A%84" class="hash-link" aria-label="2.4 我们学习的与拒绝的的直接链接" title="2.4 我们学习的与拒绝的的直接链接" translate="no">​</a></h3>
<p><strong>学习：</strong> 唯一入口、清晰边界、作者优先、数据可迁移。<br>
<strong>拒绝：</strong> PHP 主题焊死 Admin、用插件数量掩盖架构债、默认绑定臃肿 Docker 栈。</p>
<p><strong>Same editing workflow, modern Next.js delivery.</strong></p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="三react-生态缺失">三、React 生态缺失<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E4%B8%89react-%E7%94%9F%E6%80%81%E7%BC%BA%E5%A4%B1" class="hash-link" aria-label="三、React 生态缺失的直接链接" title="三、React 生态缺失的直接链接" translate="no">​</a></h2>
<div class="language-text codeBlockContainer_JGC8 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_JA40"><pre tabindex="0" class="prism-code language-text codeBlock_tiUZ thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_tulI"><div class="token-line" style="color:#393A34"><span class="token plain">                    编辑者友好</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">                        ↑</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">          WordPress     |     ReactPress（目标位）</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">                        |</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    Headless ───────────┼─────────── 全栈框架</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">                        ↓</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">                    开发者友好</span><br></div></code></pre></div></div>
<p><strong>缺口在右上角：</strong> 编辑者与开发者都满意，技术栈统一在 React/Next.js。</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="31-主流方案对比">3.1 主流方案对比<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#31-%E4%B8%BB%E6%B5%81%E6%96%B9%E6%A1%88%E5%AF%B9%E6%AF%94" class="hash-link" aria-label="3.1 主流方案对比的直接链接" title="3.1 主流方案对比的直接链接" translate="no">​</a></h3>
<table><thead><tr><th style="text-align:left">方案</th><th style="text-align:left">默认交付</th><th style="text-align:left">访客站</th></tr></thead><tbody><tr><td style="text-align:left">Strapi / Payload</td><td style="text-align:left">API + Admin</td><td style="text-align:left">无</td></tr><tr><td style="text-align:left">Next.js 博客模板</td><td style="text-align:left">示例代码</td><td style="text-align:left">有，无 CMS</td></tr><tr><td style="text-align:left">Headless WordPress</td><td style="text-align:left">REST</td><td style="text-align:left">自建</td></tr><tr><td style="text-align:left"><strong>ReactPress</strong></td><td style="text-align:left">API + Admin + 主题 + 插件 + CLI + 桌面</td><td style="text-align:left">Next.js SSR</td></tr></tbody></table>
<p>搜索 <strong>「Next.js CMS」</strong> 多半是如何<strong>接入</strong> Headless 的教程，而非<strong>一条命令装完整 CMS</strong>——这就是产品缺口。</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="32-社区里反复出现的话">3.2 社区里反复出现的话<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#32-%E7%A4%BE%E5%8C%BA%E9%87%8C%E5%8F%8D%E5%A4%8D%E5%87%BA%E7%8E%B0%E7%9A%84%E8%AF%9D" class="hash-link" aria-label="3.2 社区里反复出现的话的直接链接" title="3.2 社区里反复出现的话的直接链接" translate="no">​</a></h3>
<ul>
<li class="">「我们已经在用 Next.js，不想为博客再上 PHP WordPress。」</li>
<li class="">「Strapi 能用，但前台花了两个周末。」</li>
<li class="">「有没有自托管开源方案，而不是又一个组装套件？」</li>
</ul>
<p>ReactPress 4.0 的每一项能力——bundled CLI、SQLite 默认、npm 主题、Hook 插件、Electron 桌面——都对应真实用户故事。</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="33-reactpress-迭代脉络">3.3 ReactPress 迭代脉络<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#33-reactpress-%E8%BF%AD%E4%BB%A3%E8%84%89%E7%BB%9C" class="hash-link" aria-label="3.3 ReactPress 迭代脉络的直接链接" title="3.3 ReactPress 迭代脉络的直接链接" translate="no">​</a></h3>
<table><thead><tr><th style="text-align:left">版本</th><th style="text-align:left">代号</th><th style="text-align:left">要点</th></tr></thead><tbody><tr><td style="text-align:left">3.0</td><td style="text-align:left">Platform</td><td style="text-align:left">一条 CLI、约 60 秒起站</td></tr><tr><td style="text-align:left">3.1+</td><td style="text-align:left">Toolkit</td><td style="text-align:left">统一 API 契约、Next 14</td></tr><tr><td style="text-align:left">4.0</td><td style="text-align:left">Extend</td><td style="text-align:left">插件、桌面、npm 主题 catalog</td></tr></tbody></table>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="四reactpress-理念">四、ReactPress 理念<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%9B%9Breactpress-%E7%90%86%E5%BF%B5" class="hash-link" aria-label="四、ReactPress 理念的直接链接" title="四、ReactPress 理念的直接链接" translate="no">​</a></h2>
<blockquote>
<p><strong>Admin 管内容 · 主题管呈现 · 插件管逻辑 · API 管数据 · Toolkit 管契约</strong></p>
</blockquote>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="41-与-headless-cms-的差异">4.1 与 Headless CMS 的差异<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#41-%E4%B8%8E-headless-cms-%E7%9A%84%E5%B7%AE%E5%BC%82" class="hash-link" aria-label="4.1 与 Headless CMS 的差异的直接链接" title="4.1 与 Headless CMS 的差异的直接链接" translate="no">​</a></h3>
<table><thead><tr><th style="text-align:left">维度</th><th style="text-align:left">Headless CMS</th><th style="text-align:left">ReactPress</th></tr></thead><tbody><tr><td style="text-align:left">交付物</td><td style="text-align:left">内容 API</td><td style="text-align:left">API + Admin + 主题 + 插件 + CLI + 桌面</td></tr><tr><td style="text-align:left">访客站</td><td style="text-align:left">你负责</td><td style="text-align:left">官方 Next.js 主题，可替换</td></tr><tr><td style="text-align:left">上手</td><td style="text-align:left">部署后端 → 开发前台</td><td style="text-align:left"><code>reactpress init</code> ~60 秒</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="42-架构红线">4.2 架构红线<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#42-%E6%9E%B6%E6%9E%84%E7%BA%A2%E7%BA%BF" class="hash-link" aria-label="4.2 架构红线的直接链接" title="4.2 架构红线的直接链接" translate="no">​</a></h3>
<ol>
<li class="">Admin 不服务访客页；主题不服务 <code>/admin/</code></li>
<li class="">所有前端仅通过 <strong>Toolkit</strong> 访问 API</li>
<li class=""><strong>Server 不依赖任何前端包</strong></li>
<li class=""><strong>主题禁止直连数据库</strong></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="43-三十秒上手">4.3 三十秒上手<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#43-%E4%B8%89%E5%8D%81%E7%A7%92%E4%B8%8A%E6%89%8B" class="hash-link" aria-label="4.3 三十秒上手的直接链接" title="4.3 三十秒上手的直接链接" translate="no">​</a></h3>
<div class="language-bash codeBlockContainer_JGC8 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_JA40"><pre tabindex="0" class="prism-code language-bash codeBlock_tiUZ thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_tulI"><div class="token-line" style="color:#393A34"><span class="token plain">npm i -g @fecommunity/reactpress</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">mkdir my-site &amp;&amp; cd my-site</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">reactpress init</span><br></div></code></pre></div></div>
<p>默认 SQLite，无需 Docker。<code>reactpress doctor</code> 诊断环境问题。</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="44-两类用户">4.4 两类用户<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#44-%E4%B8%A4%E7%B1%BB%E7%94%A8%E6%88%B7" class="hash-link" aria-label="4.4 两类用户的直接链接" title="4.4 两类用户的直接链接" translate="no">​</a></h3>
<table><thead><tr><th style="text-align:left">用户</th><th style="text-align:left">入口</th></tr></thead><tbody><tr><td style="text-align:left"><strong>终端用户</strong></td><td style="text-align:left"><code>npm i -g @fecommunity/reactpress</code> → <code>init</code></td></tr><tr><td style="text-align:left"><strong>贡献者</strong></td><td style="text-align:left">clone monorepo → <code>pnpm dev</code></td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="45-与可视化建站器的边界">4.5 与可视化建站器的边界<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#45-%E4%B8%8E%E5%8F%AF%E8%A7%86%E5%8C%96%E5%BB%BA%E7%AB%99%E5%99%A8%E7%9A%84%E8%BE%B9%E7%95%8C" class="hash-link" aria-label="4.5 与可视化建站器的边界的直接链接" title="4.5 与可视化建站器的边界的直接链接" translate="no">​</a></h3>
<p>Webflow、Framer 适合营销落地页；ReactPress 服务<strong>把代码当资产</strong>的团队——主题在 Git、内容在 CMS。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="五系统架构">五、系统架构<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E4%BA%94%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84" class="hash-link" aria-label="五、系统架构的直接链接" title="五、系统架构的直接链接" translate="no">​</a></h2>
<!-- -->
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="51-创作到交付">5.1 创作到交付<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#51-%E5%88%9B%E4%BD%9C%E5%88%B0%E4%BA%A4%E4%BB%98" class="hash-link" aria-label="5.1 创作到交付的直接链接" title="5.1 创作到交付的直接链接" translate="no">​</a></h3>
<ol>
<li class="">作者在 Admin / Desktop 创建内容</li>
<li class="">请求经 Toolkit 到 NestJS API</li>
<li class="">Plugin 在 Hook 点处理 SEO、摘要等</li>
<li class="">写入 SQLite / MySQL</li>
<li class="">Next.js 主题 SSR/ISR 渲染给访客</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="52-包职责">5.2 包职责<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#52-%E5%8C%85%E8%81%8C%E8%B4%A3" class="hash-link" aria-label="5.2 包职责的直接链接" title="5.2 包职责的直接链接" translate="no">​</a></h3>
<table><thead><tr><th style="text-align:left">包</th><th style="text-align:left">职责</th></tr></thead><tbody><tr><td style="text-align:left">server</td><td style="text-align:left">业务、持久化、鉴权、Hook</td></tr><tr><td style="text-align:left">web</td><td style="text-align:left">Admin UI（Vite CSR）</td></tr><tr><td style="text-align:left">themes/*</td><td style="text-align:left">访客站（SSR/SEO）</td></tr><tr><td style="text-align:left">toolkit</td><td style="text-align:left">API 客户端、类型</td></tr><tr><td style="text-align:left">plugins/*</td><td style="text-align:left">Hook + Admin 插槽</td></tr><tr><td style="text-align:left">desktop</td><td style="text-align:left">Electron + 本地 API</td></tr><tr><td style="text-align:left">cli</td><td style="text-align:left">init / doctor / 编排</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="53-目录结构">5.3 目录结构<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#53-%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84" class="hash-link" aria-label="5.3 目录结构的直接链接" title="5.3 目录结构的直接链接" translate="no">​</a></h3>
<div class="language-text codeBlockContainer_JGC8 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_JA40"><pre tabindex="0" class="prism-code language-text codeBlock_tiUZ thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_tulI"><div class="token-line" style="color:#393A34"><span class="token plain">my-site/</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">├── .reactpress/</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│   ├── config.json</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│   ├── runtime/{theme-id}/</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│   ├── plugins/{plugin-id}/</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│   └── reactpress.db</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">├── .env</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">└── uploads/</span><br></div></code></pre></div></div>
<p>备份：<code>tar czf backup.tar.gz .reactpress uploads</code></p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="54-技术选型">5.4 技术选型<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#54-%E6%8A%80%E6%9C%AF%E9%80%89%E5%9E%8B" class="hash-link" aria-label="5.4 技术选型的直接链接" title="5.4 技术选型的直接链接" translate="no">​</a></h3>
<table><thead><tr><th style="text-align:left">决策</th><th style="text-align:left">选择</th><th style="text-align:left">原因</th></tr></thead><tbody><tr><td style="text-align:left">API</td><td style="text-align:left">NestJS</td><td style="text-align:left">模块化、Hook 友好</td></tr><tr><td style="text-align:left">Admin</td><td style="text-align:left">Vite SPA</td><td style="text-align:left">交互密集</td></tr><tr><td style="text-align:left">访客站</td><td style="text-align:left">Next.js</td><td style="text-align:left">SSR/ISR、SEO</td></tr><tr><td style="text-align:left">扩展</td><td style="text-align:left">Hook + manifest</td><td style="text-align:left">WordPress 式心智</td></tr><tr><td style="text-align:left">默认 DB</td><td style="text-align:left">SQLite</td><td style="text-align:left">零配置</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="55-端口">5.5 端口<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#55-%E7%AB%AF%E5%8F%A3" class="hash-link" aria-label="5.5 端口的直接链接" title="5.5 端口的直接链接" translate="no">​</a></h3>
<table><thead><tr><th style="text-align:left">进程</th><th style="text-align:left">端口</th></tr></thead><tbody><tr><td style="text-align:left">主题（访客）</td><td style="text-align:left">3001</td></tr><tr><td style="text-align:left">API</td><td style="text-align:left">3002</td></tr><tr><td style="text-align:left">主题预览</td><td style="text-align:left">3003</td></tr></tbody></table>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="六眼见为实">六、眼见为实<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%85%AD%E7%9C%BC%E8%A7%81%E4%B8%BA%E5%AE%9E" class="hash-link" aria-label="六、眼见为实的直接链接" title="六、眼见为实的直接链接" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="61-cli约-60-秒从安装到上线">6.1 CLI：约 60 秒从安装到上线<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#61-cli%E7%BA%A6-60-%E7%A7%92%E4%BB%8E%E5%AE%89%E8%A3%85%E5%88%B0%E4%B8%8A%E7%BA%BF" class="hash-link" aria-label="6.1 CLI：约 60 秒从安装到上线的直接链接" title="6.1 CLI：约 60 秒从安装到上线的直接链接" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="ReactPress CLI — 从安装到站点运行约 60 秒" src="https://reactpress.cc/zh/assets/images/usage-d726dbd6e25973f3b2662771aed9e6cf.gif" width="1796" height="863" class="img_hKc8"></p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="62-访客站搜索评论知识库深色模式">6.2 访客站：搜索、评论、知识库、深色模式<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#62-%E8%AE%BF%E5%AE%A2%E7%AB%99%E6%90%9C%E7%B4%A2%E8%AF%84%E8%AE%BA%E7%9F%A5%E8%AF%86%E5%BA%93%E6%B7%B1%E8%89%B2%E6%A8%A1%E5%BC%8F" class="hash-link" aria-label="6.2 访客站：搜索、评论、知识库、深色模式的直接链接" title="6.2 访客站：搜索、评论、��知识库、深色模式的直接链接" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="官方主题演示" src="https://reactpress.cc/zh/assets/images/demo-e38a1e116cd27e6fe14fdbfbfda16e2b.gif" width="1180" height="660" class="img_hKc8"></p>
<p>在线演示：<a href="https://reactpress-theme-starter.vercel.app/" target="_blank" rel="noopener noreferrer" class="">reactpress-theme-starter.vercel.app</a></p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="63-lighthouse">6.3 Lighthouse<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#63-lighthouse" class="hash-link" aria-label="6.3 Lighthouse的直接链接" title="6.3 Lighthouse的直接链接" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Lighthouse 成绩" src="https://reactpress.cc/zh/assets/images/lighthouse-8e583f1d8db7707ba8edb2060875e3c0.png" width="2634" height="1452" class="img_hKc8"></p>
<p>官方主题 Demo 可达 <strong>Performance 95 / SEO 100</strong>（生产环境因托管与内容而异）。</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="64-在线-demo">6.4 在线 Demo<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#64-%E5%9C%A8%E7%BA%BF-demo" class="hash-link" aria-label="6.4 在线 Demo的直接链接" title="6.4 在线 Demo的直接链接" translate="no">​</a></h3>
<table><thead><tr><th style="text-align:left">Demo</th><th style="text-align:left">URL</th></tr></thead><tbody><tr><td style="text-align:left">生产站点</td><td style="text-align:left"><a href="https://blog.gaoredu.com/" target="_blank" rel="noopener noreferrer" class="">blog.gaoredu.com</a></td></tr><tr><td style="text-align:left">主题 Demo</td><td style="text-align:left"><a href="https://reactpress-theme-starter.vercel.app/" target="_blank" rel="noopener noreferrer" class="">reactpress-theme-starter.vercel.app</a></td></tr><tr><td style="text-align:left">文档</td><td style="text-align:left"><a href="https://reactpress.cc/" target="_blank" rel="noopener noreferrer" class="">reactpress.cc</a></td></tr></tbody></table>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="七admin-写作界面">七、Admin 写作界面<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E4%B8%83admin-%E5%86%99%E4%BD%9C%E7%95%8C%E9%9D%A2" class="hash-link" aria-label="七、Admin 写作界面的直接链接" title="七、Admin 写作界面的直接链接" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="71-文章编辑器">7.1 文章编辑器<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#71-%E6%96%87%E7%AB%A0%E7%BC%96%E8%BE%91%E5%99%A8" class="hash-link" aria-label="7.1 文章编辑器的直接链接" title="7.1 文章编辑器的直接链接" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Admin Markdown 编辑器" src="https://reactpress.cc/zh/assets/images/post-435bb396c480d4bac00214772118482d.png" width="3584" height="2006" class="img_hKc8"></p>
<p>Markdown 编辑、草稿发布、分类标签、知识库与页面类型。</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="72-媒体库">7.2 媒体库<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#72-%E5%AA%92%E4%BD%93%E5%BA%93" class="hash-link" aria-label="7.2 媒体库的直接链接" title="7.2 媒体库的直接链接" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="媒体库" src="https://reactpress.cc/zh/assets/images/midia-5ef765e66a6a6fadbdb18ea7ae1aa00b.png" width="3584" height="2006" class="img_hKc8"></p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="73-插件管理">7.3 插件管理<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#73-%E6%8F%92%E4%BB%B6%E7%AE%A1%E7%90%86" class="hash-link" aria-label="7.3 插件管理的直接链接" title="7.3 插件管理的直接链接" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="插件面板" src="https://reactpress.cc/zh/assets/images/plugins-fa79e47a80061f236abab7af9e76b19e.png" width="3578" height="2000" class="img_hKc8"></p>
<table><thead><tr><th style="text-align:left">插件</th><th style="text-align:left">能力</th></tr></thead><tbody><tr><td style="text-align:left"><code>seo</code></td><td style="text-align:left">slug、关键词、meta 描述 + 编辑器插槽</td></tr><tr><td style="text-align:left"><code>hello-world</code></td><td style="text-align:left">自动摘要</td></tr><tr><td style="text-align:left"><code>image-optimizer</code></td><td style="text-align:left">批量 WebP 优化</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="74-外观与设置">7.4 外观与设置<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#74-%E5%A4%96%E8%A7%82%E4%B8%8E%E8%AE%BE%E7%BD%AE" class="hash-link" aria-label="7.4 外观与设置的直接链接" title="7.4 外观与设置的直接链接" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="主题外观" src="https://reactpress.cc/zh/assets/images/theme-custom-0284c814b023ce59762353463a1c7e0e.png" width="3580" height="1996" class="img_hKc8"></p>
<p><img decoding="async" loading="lazy" alt="站点设置" src="https://reactpress.cc/zh/assets/images/settings-332b55a4300b838403f7362532659ecd.png" width="3584" height="1984" class="img_hKc8"></p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="八主题系统">八、主题系统<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%85%AB%E4%B8%BB%E9%A2%98%E7%B3%BB%E7%BB%9F" class="hash-link" aria-label="八、主题系统的直接链接" title="八、主题系统的直接链接" translate="no">​</a></h2>
<blockquote>
<p><strong>主题 = 呈现。</strong> 访客看到的是可替换的 Next.js 应用。</p>
</blockquote>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="81-官方主题">8.1 官方主题<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#81-%E5%AE%98%E6%96%B9%E4%B8%BB%E9%A2%98" class="hash-link" aria-label="8.1 官方主题的直接链接" title="8.1 官方主题的直接链接" translate="no">​</a></h3>
<table><thead><tr><th style="text-align:left">主题</th><th style="text-align:left">来源</th><th style="text-align:left">适用</th></tr></thead><tbody><tr><td style="text-align:left">hello-world</td><td style="text-align:left">仓库 local</td><td style="text-align:left">学习、复制</td></tr><tr><td style="text-align:left">reactpress-theme-starter</td><td style="text-align:left">npm</td><td style="text-align:left">生产站点</td></tr></tbody></table>
<div class="language-bash codeBlockContainer_JGC8 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_JA40"><pre tabindex="0" class="prism-code language-bash codeBlock_tiUZ thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_tulI"><div class="token-line" style="color:#393A34"><span class="token plain">reactpress theme add @fecommunity/reactpress-theme-starter@1.0.0-beta.0</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="82-主题内拉取数据">8.2 主题内拉取数据<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#82-%E4%B8%BB%E9%A2%98%E5%86%85%E6%8B%89%E5%8F%96%E6%95%B0%E6%8D%AE" class="hash-link" aria-label="8.2 主题内拉取数据的直接链接" title="8.2 主题内拉取数据的直接链接" translate="no">​</a></h3>
<div class="language-typescript codeBlockContainer_JGC8 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_JA40"><pre tabindex="0" class="prism-code language-typescript codeBlock_tiUZ thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_tulI"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">import</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> createThemeApi </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">from</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'@fecommunity/reactpress-toolkit/theme'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> api </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">createThemeApi</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> baseURL</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> process</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">env</span><span class="token punctuation" style="color:#393A34">.</span><span class="token constant" style="color:#36acaa">NEXT_PUBLIC_API_URL</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> data </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">await</span><span class="token plain"> api</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">article</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">list</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> status</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'publish'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> page</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="83-seo-分工">8.3 SEO 分工<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#83-seo-%E5%88%86%E5%B7%A5" class="hash-link" aria-label="8.3 SEO 分工的直接链接" title="8.3 SEO 分工的直接链接" translate="no">​</a></h3>
<p>Admin + SEO 插件<strong>写</strong>元数据；主题 SSR <strong>渲染</strong> title、OG、JSON-LD、sitemap。</p>
<p>详见 <a class="" href="https://reactpress.cc/zh/docs/developer-guide/theme-development">主题开发</a>。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="九插件系统">九、插件系统<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E4%B9%9D%E6%8F%92%E4%BB%B6%E7%B3%BB%E7%BB%9F" class="hash-link" aria-label="九、插件系统的直接链接" title="九、插件系统的直接链接" translate="no">​</a></h2>
<blockquote>
<p><strong>主题 = 呈现 · 插件 = 逻辑</strong></p>
</blockquote>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="91-生命周期">9.1 生命周期<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#91-%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F" class="hash-link" aria-label="9.1 生命周期的直接链接" title="9.1 生命周期的直接链接" translate="no">​</a></h3>
<p>发现 → 安装 → 启用 → 配置 → （可选）卸载</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="92-hook-示例">9.2 Hook 示例<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#92-hook-%E7%A4%BA%E4%BE%8B" class="hash-link" aria-label="9.2 Hook 示例的直接链接" title="9.2 Hook 示例的直接链接" translate="no">​</a></h3>
<div class="language-typescript codeBlockContainer_JGC8 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_JA40"><pre tabindex="0" class="prism-code language-typescript codeBlock_tiUZ thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_tulI"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">export</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">function</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">register</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">hooks</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> PluginContext</span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#e3116c">'hooks'</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  hooks</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">addFilter</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">'article.beforePublish'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">async</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">article</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">if</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token operator" style="color:#393A34">!</span><span class="token plain">article</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">summary</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      article</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">summary </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> article</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">content</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">slice</span><span class="token punctuation" style="color:#393A34">(</span><span class="token number" style="color:#36acaa">0</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">160</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> article</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="93-与-wordpress-插件的诚实对比">9.3 与 WordPress 插件的诚实对比<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#93-%E4%B8%8E-wordpress-%E6%8F%92%E4%BB%B6%E7%9A%84%E8%AF%9A%E5%AE%9E%E5%AF%B9%E6%AF%94" class="hash-link" aria-label="9.3 与 WordPress 插件的诚实对比的直接链接" title="9.3 与 WordPress 插件的诚实对比的直接链接" translate="no">​</a></h3>
<p>WordPress 有海量即装插件；ReactPress 机制就绪、内置 SEO/摘要/图片优化，更适合<strong>能写代码的团队</strong>按需扩展。</p>
<p>详见 <a class="" href="https://reactpress.cc/zh/docs/developer-guide/plugin-development">插件开发</a>。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="十桌面客户端">十、桌面客户端<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%8D%81%E6%A1%8C%E9%9D%A2%E5%AE%A2%E6%88%B7%E7%AB%AF" class="hash-link" aria-label="十、桌面客户端的直接链接" title="十、桌面客户端的直接链接" translate="no">​</a></h2>
<p>WordPress 没有原生的离线本地写作对等物。ReactPress Desktop = <strong>Electron 壳 + 同一套 Admin SPA</strong>。</p>
<p><img decoding="async" loading="lazy" alt="桌面端 — 离线写作，同步到生产" src="https://reactpress.cc/zh/assets/images/desktop-7e496864328500e40bfe913d01c880de.gif" width="1182" height="720" class="img_hKc8"></p>
<table><thead><tr><th style="text-align:left">模式</th><th style="text-align:left">场景</th></tr></thead><tbody><tr><td style="text-align:left"><strong>本地模式</strong></td><td style="text-align:left">离线写作、SQLite 内嵌 API</td></tr><tr><td style="text-align:left"><strong>远程模式</strong></td><td style="text-align:left">对接生产/staging API</td></tr></tbody></table>
<p>安装包：<a href="https://github.com/fecommunity/reactpress/releases" target="_blank" rel="noopener noreferrer" class="">GitHub Releases</a> · <a class="" href="https://reactpress.cc/zh/docs/tutorial-extras/desktop-client">桌面客户端文档</a></p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="十一headless-api">十一、Headless API<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%8D%81%E4%B8%80headless-api" class="hash-link" aria-label="十一、Headless API的直接链接" title="十一、Headless API的直接链接" translate="no">​</a></h2>
<div class="language-bash codeBlockContainer_JGC8 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_JA40"><pre tabindex="0" class="prism-code language-bash codeBlock_tiUZ thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_tulI"><div class="token-line" style="color:#393A34"><span class="token plain">curl -H "X-API-Key: YOUR_KEY" \</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  "http://localhost:3002/api/article/headless/list?status=publish&amp;page=1&amp;pageSize=10"</span><br></div></code></pre></div></div>
<p>Swagger：<code>http://localhost:3002/api</code></p>
<table><thead><tr><th style="text-align:left">方法</th><th style="text-align:left">路径</th><th style="text-align:left">说明</th></tr></thead><tbody><tr><td style="text-align:left">GET</td><td style="text-align:left"><code>/api/health</code></td><td style="text-align:left">健康检查</td></tr><tr><td style="text-align:left">GET</td><td style="text-align:left"><code>/api/article/headless/list</code></td><td style="text-align:left">已发布文章列表</td></tr><tr><td style="text-align:left">GET</td><td style="text-align:left"><code>/api/category/list</code></td><td style="text-align:left">分类</td></tr></tbody></table>
<p>详见 <a class="" href="https://reactpress.cc/zh/docs/developer-guide/headless-api">Headless API 指南</a>。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="十二seo-与性能">十二、SEO 与性能<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%8D%81%E4%BA%8Cseo-%E4%B8%8E%E6%80%A7%E8%83%BD" class="hash-link" aria-label="十二、SEO 与性能的直接链接" title="十二、SEO 与性能的直接链接" translate="no">​</a></h2>
<table><thead><tr><th style="text-align:left">层级</th><th style="text-align:left">策略</th></tr></thead><tbody><tr><td style="text-align:left">Admin</td><td style="text-align:left">CSR（不需 SEO）</td></tr><tr><td style="text-align:left">主题</td><td style="text-align:left">SSR/ISR（爬虫友好）</td></tr><tr><td style="text-align:left">SEO 插件</td><td style="text-align:left">slug、关键词、meta</td></tr><tr><td style="text-align:left">主题</td><td style="text-align:left">sitemap、OG、JSON-LD</td></tr></tbody></table>
<p>对比 <a class="" href="https://reactpress.cc/zh/docs/getting-started/reactpress-vs-wordpress">ReactPress vs WordPress</a>。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="十三安全模型">十三、安全模型<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%8D%81%E4%B8%89%E5%AE%89%E5%85%A8%E6%A8%A1%E5%9E%8B" class="hash-link" aria-label="十三、安全模型的直接链接" title="十三、安全模型的直接链接" translate="no">​</a></h2>
<p>3.7+ 重点：</p>
<ul>
<li class="">SQL 注入：公开列表 API 列名白名单</li>
<li class="">存储型 XSS：评论 HTML 消毒、JWT、<code>Helmet</code> CSP</li>
<li class="">报告：<a href="https://github.com/fecommunity/reactpress/blob/master/SECURITY.md" target="_blank" rel="noopener noreferrer" class="">SECURITY.md</a></li>
</ul>
<p>生产清单：改默认密码、HTTPS、定期备份 <code>.reactpress/</code> 与 <code>uploads/</code>。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="十四部署模式">十四、部署模式<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%8D%81%E5%9B%9B%E9%83%A8%E7%BD%B2%E6%A8%A1%E5%BC%8F" class="hash-link" aria-label="十四、部署模式的直接链接" title="十四、部署模式的直接链接" translate="no">​</a></h2>
<table><thead><tr><th style="text-align:left">模式</th><th style="text-align:left">适用</th></tr></thead><tbody><tr><td style="text-align:left">SQLite 单机</td><td style="text-align:left">个人站、<code>reactpress init</code></td></tr><tr><td style="text-align:left">MySQL</td><td style="text-align:left">并发编辑、更大流量</td></tr><tr><td style="text-align:left">Docker Compose</td><td style="text-align:left">VPS 可复现部署</td></tr><tr><td style="text-align:left">主题分离</td><td style="text-align:left">主题上 Vercel，API 在 VPS</td></tr></tbody></table>
<p>详见 <a class="" href="https://reactpress.cc/zh/docs/tutorial-basics/deploy-your-site">生产部署</a>、<a class="" href="https://reactpress.cc/zh/docs/tutorial-extras/docker-deployment">Docker 部署</a>。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="十五迁移路径">十五、迁移路径<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%8D%81%E4%BA%94%E8%BF%81%E7%A7%BB%E8%B7%AF%E5%BE%84" class="hash-link" aria-label="十五、迁移路径的直接链接" title="十五、迁移路径的直接链接" translate="no">​</a></h2>
<table><thead><tr><th style="text-align:left">来源</th><th style="text-align:left">要点</th></tr></thead><tbody><tr><td style="text-align:left">新站</td><td style="text-align:left"><code>reactpress init</code></td></tr><tr><td style="text-align:left">ReactPress 3.x → 4.0</td><td style="text-align:left">无强制 Breaking，<a class="" href="https://reactpress.cc/zh/docs/tutorial-extras/migration-3-to-4">迁移指南</a></td></tr><tr><td style="text-align:left">WordPress</td><td style="text-align:left">内容可脚本迁移；<strong>主题需 Next.js 重写</strong></td></tr><tr><td style="text-align:left">Markdown 仓库</td><td style="text-align:left">导入 API 后改用 Admin 发稿</td></tr></tbody></table>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="十六适用场景">十六、适用场景<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%8D%81%E5%85%AD%E9%80%82%E7%94%A8%E5%9C%BA%E6%99%AF" class="hash-link" aria-label="十六、适用场景的直接链接" title="十六、适用场景的直接链接" translate="no">​</a></h2>
<table><thead><tr><th style="text-align:left">场景</th><th style="text-align:left">为什么适合</th></tr></thead><tbody><tr><td style="text-align:left">个人技术博客</td><td style="text-align:left">Admin + Lighthouse 级主题</td></tr><tr><td style="text-align:left">开源文档站</td><td style="text-align:left">知识库 + 文章同一主题</td></tr><tr><td style="text-align:left">营销 + 工程并行</td><td style="text-align:left">Admin 给运营，主题仓库给前端</td></tr><tr><td style="text-align:left">离线写作</td><td style="text-align:left">Desktop + SQLite + 同步</td></tr><tr><td style="text-align:left">WordPress 替代评估</td><td style="text-align:left">熟悉工作流、现代栈</td></tr></tbody></table>
<p><strong>自测：</strong> 若 ≥3 条成立值得试用——主栈 React/Next、非开发者需发稿、要自托管开源、厌倦五仓库拼装、不想引入 PHP、关心 SSR SEO。</p>
<p>客观对比：<a class="" href="https://reactpress.cc/zh/docs/getting-started/reactpress-vs-wordpress">ReactPress vs WordPress</a>。</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="161-三个用户故事">16.1 三个用户故事<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#161-%E4%B8%89%E4%B8%AA%E7%94%A8%E6%88%B7%E6%95%85%E4%BA%8B" class="hash-link" aria-label="16.1 三个用户故事的直接链接" title="16.1 三个用户故事的直接链接" translate="no">​</a></h3>
<p><strong>独立开发者 Alice</strong> — <code>reactpress init</code>，周日下午发文，Lighthouse 跑绿，不需要 Strapi 或 PHP。</p>
<p><strong>开源维护者</strong> — 文档走知识库 API，changelog 走文章 API，贡献者用 Admin 发稿。</p>
<p><strong>营销 + 前端并行</strong> — 运营在 Admin 排期；前端 fork 主题做品牌动效；插件 Hook 通知 Slack。</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="162-何时仍选-wordpress">16.2 何时仍选 WordPress<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#162-%E4%BD%95%E6%97%B6%E4%BB%8D%E9%80%89-wordpress" class="hash-link" aria-label="16.2 何时仍选 WordPress的直接链接" title="16.2 何时仍选 WordPress的直接链接" translate="no">​</a></h3>
<ul>
<li class="">依赖海量现成插件（电商、会员、复杂表单）</li>
<li class="">已有大量 PHP 主题/插件投资</li>
<li class="">团队完全非技术、不愿碰 JavaScript</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="十七路线图">十七、路线图<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%8D%81%E4%B8%83%E8%B7%AF%E7%BA%BF%E5%9B%BE" class="hash-link" aria-label="十七、路线图的直接链接" title="十七�、路线图的直接链接" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="近期4x">近期（4.x）<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E8%BF%91%E6%9C%9F4x" class="hash-link" aria-label="近期（4.x）的直接链接" title="近期（4.x）的直接链接" translate="no">​</a></h3>
<ul>
<li class="">插件 npm catalog、<code>reactpress plugin create</code></li>
<li class="">Desktop 自动更新、托盘、快捷键</li>
<li class=""><code>reactpress theme create</code></li>
<li class="">主题/插件市场</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="长期愿景">长期愿景<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E9%95%BF%E6%9C%9F%E6%84%BF%E6%99%AF" class="hash-link" aria-label="长期愿景的直接链接" title="长期愿景的直接链接" translate="no">​</a></h3>
<p>让「React 技术栈的默认发布方式」像 WordPress 一样被脱口而出：</p>
<div class="language-bash codeBlockContainer_JGC8 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_JA40"><pre tabindex="0" class="prism-code language-bash codeBlock_tiUZ thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_tulI"><div class="token-line" style="color:#393A34"><span class="token plain">npm i -g @fecommunity/reactpress</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">reactpress init</span><br></div></code></pre></div></div>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="十八常见问题">十八、常见问题<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%8D%81%E5%85%AB%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98" class="hash-link" aria-label="十八、常见问题的直接链接" title="十八、常见问题的直接链接" translate="no">​</a></h2>
<p><strong>免费吗？</strong> MIT 开源，可商用。</p>
<p><strong>4.0 能上生产吗？</strong> 核心路径已大量验证；staging 验证后升级，见 <a class="" href="https://reactpress.cc/zh/docs/tutorial-extras/migration-3-to-4">迁移指南</a>。</p>
<p><strong>必须 Docker 吗？</strong> 默认 SQLite，不必须。</p>
<p><strong>能用自己的前台吗？</strong> Headless REST + API Key + Toolkit。</p>
<p><strong>和 Strapi 怎么选？</strong> 它们主要交付 API；ReactPress 交付<strong>完整发布平台</strong>。</p>
<p><strong>能从 WordPress 迁移吗？</strong> 内容可以；主题需重写。</p>
<p>更多：<a class="" href="https://reactpress.cc/zh/docs/reference/faq">FAQ</a></p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="181-扩展问答">18.1 扩展问答<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#181-%E6%89%A9%E5%B1%95%E9%97%AE%E7%AD%94" class="hash-link" aria-label="18.1 扩展问答的直接链接" title="18.1 扩展问答的直接链接" translate="no">​</a></h3>
<p><strong>Windows 能用吗？</strong> CLI 与 Desktop 均支持 Windows 10+。</p>
<p><strong>能跑多个站点吗？</strong> 可以，不同目录 + 不同 <code>config.json</code> 端口。</p>
<p><strong>必须用官方主题吗？</strong> 否，Headless API + 自研 Next 即可。</p>
<p><strong>GraphQL？</strong> 标准交付为 REST；GraphQL 需自建网关或插件。</p>
<p><strong>桌面端必须装吗？</strong> 否，Web Admin 已完整；桌面端面向离线场景。</p>
<p><strong>Node 版本？</strong> 当前推荐 Node.js 20+。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="附录对比速查">附录：对比速查<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E9%99%84%E5%BD%95%E5%AF%B9%E6%AF%94%E9%80%9F%E6%9F%A5" class="hash-link" aria-label="附录：对比速查的直接链接" title="附录：对比速查的直接链接" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="a-reactpress-vs-wordpress2026">A. ReactPress vs WordPress（2026）<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#a-reactpress-vs-wordpress2026" class="hash-link" aria-label="A. ReactPress vs WordPress（2026）的直接链接" title="A. ReactPress vs WordPress（2026）的直接链接" translate="no">​</a></h3>
<table><thead><tr><th style="text-align:left">维度</th><th style="text-align:left">ReactPress</th><th style="text-align:left">WordPress</th></tr></thead><tbody><tr><td style="text-align:left">定位</td><td style="text-align:left">React 完整发布平台</td><td style="text-align:left">通用 PHP CMS</td></tr><tr><td style="text-align:left">技术栈</td><td style="text-align:left">React、Next.js、NestJS</td><td style="text-align:left">PHP、MySQL</td></tr><tr><td style="text-align:left">上手</td><td style="text-align:left">~60 秒 <code>init</code></td><td style="text-align:left">托管一键安装</td></tr><tr><td style="text-align:left">默认前台</td><td style="text-align:left">Next.js SSR</td><td style="text-align:left">PHP 主题</td></tr><tr><td style="text-align:left">Headless</td><td style="text-align:left">原生 REST</td><td style="text-align:left">插件 + REST</td></tr><tr><td style="text-align:left">离线写作</td><td style="text-align:left">Electron 桌面</td><td style="text-align:left">第三方编辑器</td></tr><tr><td style="text-align:left">最适合</td><td style="text-align:left">React 团队、SSR SEO</td><td style="text-align:left">非技术用户、插件生态</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="b-reactpress-vs-headless-拼装">B. ReactPress vs Headless 拼装<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#b-reactpress-vs-headless-%E6%8B%BC%E8%A3%85" class="hash-link" aria-label="B. ReactPress vs Headless 拼装的直接链接" title="B. ReactPress vs Headless 拼装的直接链接" translate="no">​</a></h3>
<table><thead><tr><th style="text-align:left">任务</th><th style="text-align:left">Strapi + Next</th><th style="text-align:left">ReactPress</th></tr></thead><tbody><tr><td style="text-align:left">安装</td><td style="text-align:left">Docker / 云</td><td style="text-align:left"><code>reactpress init</code></td></tr><tr><td style="text-align:left">访客站</td><td style="text-align:left">从零开发</td><td style="text-align:left">官方主题自带</td></tr><tr><td style="text-align:left">SEO 基线</td><td style="text-align:left">自己做</td><td style="text-align:left">插件 + 主题默认</td></tr><tr><td style="text-align:left">诊断</td><td style="text-align:left">无统一入口</td><td style="text-align:left"><code>reactpress doctor</code></td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="c-发布流水线概念">C. 发布流水线（概念）<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#c-%E5%8F%91%E5%B8%83%E6%B5%81%E6%B0%B4%E7%BA%BF%E6%A6%82%E5%BF%B5" class="hash-link" aria-label="C. 发布流水线（概念）的直接链接" title="C. 发布流水线（概念）的直接链接" translate="no">​</a></h3>
<div class="language-text codeBlockContainer_JGC8 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_JA40"><pre tabindex="0" class="prism-code language-text codeBlock_tiUZ thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_tulI"><div class="token-line" style="color:#393A34"><span class="token plain">作者点击发布</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  → Toolkit 请求 API</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  → Hook: article.beforePublish（插件改 SEO、摘要）</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  → 持久化</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  → Hook: article.afterPublish</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  → Webhook 通知外部系统</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  → 主题 SSR/ISR 拉取新内容</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="d-运维极简清单">D. 运维极简清单<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#d-%E8%BF%90%E7%BB%B4%E6%9E%81%E7%AE%80%E6%B8%85%E5%8D%95" class="hash-link" aria-label="D. 运维极简清单的直接链接" title="D. 运维极简清单的直接链接" translate="no">​</a></h3>
<ul>
<li class=""><strong>每日：</strong> 扫一眼评论审核队列</li>
<li class=""><strong>每周：</strong> 看 <code>reactpress logs</code>、检查磁盘</li>
<li class=""><strong>每月：</strong> 测试备份恢复、轮换 API Key</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="十九快速开始">十九、快速开始<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E5%8D%81%E4%B9%9D%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B" class="hash-link" aria-label="十九、快速开始的直接链接" title="十九、快速开始的直接链接" translate="no">​</a></h2>
<div class="language-bash codeBlockContainer_JGC8 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_JA40"><pre tabindex="0" class="prism-code language-bash codeBlock_tiUZ thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_tulI"><div class="token-line" style="color:#393A34"><span class="token plain">npm i -g @fecommunity/reactpress</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">mkdir my-blog &amp;&amp; cd my-blog</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">reactpress init</span><br></div></code></pre></div></div>
<ol>
<li class="">打开 <a href="http://localhost:3001/admin/%EF%BC%88%E9%BB%98%E8%AE%A4" target="_blank" rel="noopener noreferrer" class="">http://localhost:3001/admin/（默认</a> <code>admin</code> / <code>admin</code>）</li>
<li class="">写第一篇文章，启用 <code>seo</code> 插件</li>
<li class="">在 <a href="http://localhost:3001/" target="_blank" rel="noopener noreferrer" class="">http://localhost:3001</a> 查看 SSR 结果</li>
</ol>
<p>下一步：<a class="" href="https://reactpress.cc/zh/docs/getting-started/first-site">5 分钟创建第一个站点</a>、<a class="" href="https://reactpress.cc/zh/docs/tutorial-extras/reactpress-4-0">ReactPress 4.0 指南</a>、<a class="" href="https://reactpress.cc/zh/docs/developer-guide/architecture-overview">系统架构</a>。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="二十结语">二十、结语<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E4%BA%8C%E5%8D%81%E7%BB%93%E8%AF%AD" class="hash-link" aria-label="二十、结语的直接链接" title="二十、结语的直接链接" translate="no">​</a></h2>
<p>React 改变了我们如何构建界面，却没有同等改变我们如何<strong>发布</strong>内容。WordPress 告诉我们：赢家靠<strong>唯一入口、清晰边界、作者优先、可扩展生态、可迁移数据</strong>。</p>
<p>ReactPress 4.0 把这些原则翻译到 React 时代：</p>
<table><thead><tr><th style="text-align:left">能力</th><th style="text-align:left">你得到什么</th></tr></thead><tbody><tr><td style="text-align:left">CLI</td><td style="text-align:left"><code>reactpress init</code> 约 60 秒</td></tr><tr><td style="text-align:left">Admin</td><td style="text-align:left">WordPress 式内容运营</td></tr><tr><td style="text-align:left">API</td><td style="text-align:left">Headless REST + Swagger</td></tr><tr><td style="text-align:left">主题</td><td style="text-align:left">可替换 Next.js SSR</td></tr><tr><td style="text-align:left">插件</td><td style="text-align:left">Hook + <code>plugin.json</code></td></tr><tr><td style="text-align:left">桌面端</td><td style="text-align:left">离线 SQLite，就绪后同步</td></tr><tr><td style="text-align:left">许可证</td><td style="text-align:left">MIT 开源</td></tr></tbody></table>
<p>若你在搜索 <strong>React CMS</strong>、<strong>Next.js CMS</strong>、<strong>WordPress alternative</strong>、<strong>open source CMS</strong>——从这里开始：</p>
<div class="language-bash codeBlockContainer_JGC8 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_JA40"><pre tabindex="0" class="prism-code language-bash codeBlock_tiUZ thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_tulI"><div class="token-line" style="color:#393A34"><span class="token plain">npm i -g @fecommunity/reactpress</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">mkdir my-blog &amp;&amp; cd my-blog</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">reactpress init</span><br></div></code></pre></div></div>
<p><strong>Build. Manage. Extend.</strong></p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="相关链接">相关链接<a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4#%E7%9B%B8%E5%85%B3%E9%93%BE%E6%8E%A5" class="hash-link" aria-label="相关链接的直接链接" title="相关链接的直接链接" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://github.com/fecommunity/reactpress" target="_blank" rel="noopener noreferrer" class="">GitHub 仓库</a></li>
<li class=""><a href="https://blog.gaoredu.com/" target="_blank" rel="noopener noreferrer" class="">在线 Demo</a></li>
<li class=""><a href="https://reactpress.cc/zh/blog/why-react-still-doesnt-have-wordpress-reactpress-4" target="_blank" rel="noopener noreferrer" class="">英文版长文</a></li>
<li class=""><a class="" href="https://reactpress.cc/zh/docs/tutorial-extras/reactpress-4-0">ReactPress 4.0 指南</a></li>
<li class=""><a class="" href="https://reactpress.cc/zh/docs/getting-started/reactpress-vs-wordpress">ReactPress vs WordPress</a></li>
<li class=""><a class="" href="https://reactpress.cc/zh/blog/changelog">更新日志</a></li>
</ul>
<p><em>ReactPress 由 <a href="https://github.com/fecommunity" target="_blank" rel="noopener noreferrer" class="">fecommunity</a> 开发，MIT 许可证发布。</em></p>]]></content>
        <author>
            <name>reactpress</name>
            <uri>https://github.com/fecommunity/reactpress</uri>
        </author>
        <category label="文章" term="文章"/>
        <category label="ReactPress" term="ReactPress"/>
        <category label="React CMS" term="React CMS"/>
        <category label="WordPress 替代" term="WordPress 替代"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[更新日志]]></title>
        <id>https://reactpress.cc/zh/blog/changelog</id>
        <link href="https://reactpress.cc/zh/blog/changelog"/>
        <updated>2026-06-14T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[4.0.0 (2026-08-09)]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="400-2026-08-09"><a href="https://github.com/fecommunity/reactpress/compare/v4.0.0-beta.18...v4.0.0" target="_blank" rel="noopener noreferrer" class="">4.0.0</a> (2026-08-09)<a href="https://reactpress.cc/zh/blog/changelog#400-2026-08-09" class="hash-link" aria-label="400-2026-08-09的直接链接" title="400-2026-08-09的直接链接" translate="no">​</a></h2>
<p><strong>ReactPress 4.0.0 稳定版</strong> — npm <code>@latest</code>（<a href="https://github.com/fecommunity/reactpress/issues/88" target="_blank" rel="noopener noreferrer" class="">#88</a>）。安装：<code>npm i -g @fecommunity/reactpress</code>。</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="亮点">亮点<a href="https://reactpress.cc/zh/blog/changelog#%E4%BA%AE%E7%82%B9" class="hash-link" aria-label="亮点的直接链接" title="亮点的直接链接" translate="no">​</a></h3>
<ul>
<li class=""><strong>发布</strong>：4.x 从 <code>@beta</code> 提升为 <code>@latest</code></li>
<li class=""><strong>文档 / README / Admin</strong>：默认安装路径为稳定版 4.0.0</li>
<li class=""><strong>发布 CLI</strong>：支持 <code>promote to stable</code>；<code>resolveNpmTag</code> 将 <code>4.0.0</code> 映射到 <code>latest</code></li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="400-beta18-2026-07-12"><a href="https://github.com/fecommunity/reactpress/compare/v4.0.0-beta.0...v4.0.0-beta.18" target="_blank" rel="noopener noreferrer" class="">4.0.0-beta.18</a> (2026-07-12)<a href="https://reactpress.cc/zh/blog/changelog#400-beta18-2026-07-12" class="hash-link" aria-label="400-beta18-2026-07-12的直接链接" title="400-beta18-2026-07-12的直接链接" translate="no">​</a></h2>
<p><strong>ReactPress 4.0 beta.18</strong> — 当时 npm <code>@beta</code> 标签。安装：<code>npm i -g @fecommunity/reactpress@beta</code>。</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="亮点-1">亮点<a href="https://reactpress.cc/zh/blog/changelog#%E4%BA%AE%E7%82%B9-1" class="hash-link" aria-label="亮点的直接链接" title="亮点的直接链接" translate="no">​</a></h3>
<ul>
<li class=""><strong>CLI</strong>：零依赖捆绑运行时、主题安装/代理改进、<code>doctor</code> 与日志体验优化</li>
<li class=""><strong>桌面端</strong>：跨平台安装包构建工作流；发布时自动上传至 GitHub Releases</li>
<li class=""><strong>文档</strong>：Algolia DocSearch、changelog 版本侧栏、首页版本标签；README 与演示素材更新</li>
<li class=""><strong>资源</strong>：star history 图表迁移至 <code>public/star-history/</code></li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="400-beta0-2026-06-27"><a href="https://github.com/fecommunity/reactpress/compare/v3.7.0...v4.0.0-beta.0" target="_blank" rel="noopener noreferrer" class="">4.0.0-beta.0</a> (2026-06-27)<a href="https://reactpress.cc/zh/blog/changelog#400-beta0-2026-06-27" class="hash-link" aria-label="400-beta0-2026-06-27的直接链接" title="400-beta0-2026-06-27的直接链接" translate="no">​</a></h2>
<p><strong>ReactPress 4.0 扩展版（beta）</strong> — 插件、桌面客户端、主题 catalog。安装：<code>npm i -g @fecommunity/reactpress@beta</code>。</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="新特性">新特性<a href="https://reactpress.cc/zh/blog/changelog#%E6%96%B0%E7%89%B9%EF%BF%BD%E6%80%A7" class="hash-link" aria-label="新特性的直接链接" title="新特性的直接链接" translate="no">​</a></h3>
<ul>
<li class=""><strong>插件系统</strong> (<a href="https://github.com/fecommunity/reactpress/issues/69" target="_blank" rel="noopener noreferrer" class="">#69</a>)：Hook + <code>plugin.json</code> manifest + Admin 插槽；内置 <code>hello-world</code>（自动摘要）、<code>seo</code>（SEO 增强）、<code>image-optimizer</code>（历史图片 WebP 批量优化）</li>
<li class=""><strong>桌面客户端</strong> (<a href="https://github.com/fecommunity/reactpress/issues/70" target="_blank" rel="noopener noreferrer" class="">#70</a>)：Electron + SQLite 本地模式；远程 API 与内容同步</li>
<li class=""><strong>主题系统</strong> (<a href="https://github.com/fecommunity/reactpress/issues/71" target="_blank" rel="noopener noreferrer" class="">#71</a>)：npm catalog（<code>theme-starter</code>）、<code>theme add</code>/<code>list</code>、预览池；hello-world 文档与结构对齐</li>
<li class=""><strong>迁移指南</strong>：<a class="" href="https://reactpress.cc/zh/docs/tutorial-extras/migration-3-to-4">3.x → 4.0</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="370-2026-06-23"><a href="https://github.com/fecommunity/reactpress/compare/v3.6.0...v3.7.0" target="_blank" rel="noopener noreferrer" class="">3.7.0</a> (2026-06-23)<a href="https://reactpress.cc/zh/blog/changelog#370-2026-06-23" class="hash-link" aria-label="370-2026-06-23的直接链接" title="370-2026-06-23的直接链接" translate="no">​</a></h2>
<p><strong>安全修复</strong> — SQL 注入与存储型 XSS 修复。</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="新特性-1">新特性<a href="https://reactpress.cc/zh/blog/changelog#%E6%96%B0%E7%89%B9%E6%80%A7-1" class="hash-link" aria-label="新特性的直接链接" title="新特性的直接链接" translate="no">​</a></h3>
<ul>
<li class=""><strong>SQL 注入</strong>：公开列表 API <code>findAll()</code> 中过滤字段名白名单校验</li>
<li class=""><strong>存储型 XSS</strong>：Markdown 解析后 HTML 消毒；<code>POST /comment</code> 需 JWT；Helmet CSP 响应头</li>
<li class="">致谢：<a href="https://github.com/lsr365400" target="_blank" rel="noopener noreferrer" class="">lsr365400</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="360-2026-06-14"><a href="https://github.com/fecommunity/reactpress/compare/v3.5.0...v3.6.0" target="_blank" rel="noopener noreferrer" class="">3.6.0</a> (2026-06-14)<a href="https://reactpress.cc/zh/blog/changelog#360-2026-06-14" class="hash-link" aria-label="360-2026-06-14的直接链接" title="360-2026-06-14的直接链接" translate="no">​</a></h2>
<p><strong>文档 CI/CD 与部署</strong> — 自动化文档流水线，Vercel 配置迁移。</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="新特性-2">新特性<a href="https://reactpress.cc/zh/blog/changelog#%E6%96%B0%E7%89%B9%E6%80%A7-2" class="hash-link" aria-label="新特性的直接链接" title="新特性的直接链接" translate="no">​</a></h3>
<ul>
<li class=""><strong>文档部署</strong>：GitHub Actions CI/CD 自动部署文档站点</li>
<li class=""><strong>Vercel</strong>：配置迁移至仓库根目录；文档链接更新为新部署地址</li>
<li class=""><strong>CI</strong>：移除已弃用的 deploy workflow；MySQL 镜像改用 AWS ECR 公共镜像，加速 GHA 构建</li>
<li class=""><strong>配置</strong>：改进部署配置中 <code>DOCS_SITE_URL</code> 的处理</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="350-2026-06-14"><a href="https://github.com/fecommunity/reactpress/compare/v3.4.0...v3.5.0" target="_blank" rel="noopener noreferrer" class="">3.5.0</a> (2026-06-14)<a href="https://reactpress.cc/zh/blog/changelog#350-2026-06-14" class="hash-link" aria-label="350-2026-06-14的直接链接" title="350-2026-06-14的直接链接" translate="no">​</a></h2>
<p><strong>主题目录</strong> — 基于 npm 的主题发现与管理。</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="新特性-3">新特性<a href="https://reactpress.cc/zh/blog/changelog#%E6%96%B0%E7%89%B9%E6%80%A7-3" class="hash-link" aria-label="新特性的直接链接" title="新特性的直接链接" translate="no">​</a></h3>
<ul>
<li class="">新增 <code>theme.catalog.schema.json</code> 与 <code>themes/package.json</code></li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="340-2026-06-12"><a href="https://github.com/fecommunity/reactpress/compare/v3.3.0...v3.4.0" target="_blank" rel="noopener noreferrer" class="">3.4.0</a> (2026-06-12)<a href="https://reactpress.cc/zh/blog/changelog#340-2026-06-12" class="hash-link" aria-label="340-2026-06-12的直接链接" title="340-2026-06-12的直接链接" translate="no">​</a></h2>
<p><strong>社区</strong> — 更清晰的 Issue 反馈体验。</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="新特性-4">新特性<a href="https://reactpress.cc/zh/blog/changelog#%E6%96%B0%E7%89%B9%E6%80%A7-4" class="hash-link" aria-label="新特性的直接链接" title="新特性的直接链接" translate="no">​</a></h3>
<ul>
<li class="">优化 Bug 报告、功能请求与配置类 Issue 模板</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="330-2026-06-07"><a href="https://github.com/fecommunity/reactpress/compare/v3.2.0...v3.3.0" target="_blank" rel="noopener noreferrer" class="">3.3.0</a> (2026-06-07)<a href="https://reactpress.cc/zh/blog/changelog#330-2026-06-07" class="hash-link" aria-label="330-2026-06-07的直接链接" title="330-2026-06-07的直接链接" translate="no">​</a></h2>
<p><strong>社区与安全</strong> — 行为准则与漏洞报告机制。</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="新特性-5">新特性<a href="https://reactpress.cc/zh/blog/changelog#%E6%96%B0%E7%89%B9%E6%80%A7-5" class="hash-link" aria-label="新特性的直接链接" title="新特性的直接链接" translate="no">​</a></h3>
<ul>
<li class="">新增 <code>CODE_OF_CONDUCT.md</code> 与 <code>SECURITY.md</code></li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="320-2026-06-07"><a href="https://github.com/fecommunity/reactpress/compare/v3.1.1...v3.2.0" target="_blank" rel="noopener noreferrer" class="">3.2.0</a> (2026-06-07)<a href="https://reactpress.cc/zh/blog/changelog#320-2026-06-07" class="hash-link" aria-label="320-2026-06-07的直接链接" title="320-2026-06-07的直接链接" translate="no">​</a></h2>
<p><strong>主题开发</strong> — 面向主题作者的 Next.js 工具链。</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="新特性-6">新特性<a href="https://reactpress.cc/zh/blog/changelog#%E6%96%B0%E7%89%B9%E6%80%A7-6" class="hash-link" aria-label="新特性的直接链接" title="新特性的直接链接" translate="no">​</a></h3>
<ul>
<li class="">新增 Next.js 配置与 node helpers，完善主题开发工作流</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="311-2026-06-07"><a href="https://github.com/fecommunity/reactpress/compare/v3.1.0...v3.1.1" target="_blank" rel="noopener noreferrer" class="">3.1.1</a> (2026-06-07)<a href="https://reactpress.cc/zh/blog/changelog#311-2026-06-07" class="hash-link" aria-label="311-2026-06-07的直接链接" title="311-2026-06-07的直接链接" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="bug-fixes">Bug Fixes<a href="https://reactpress.cc/zh/blog/changelog#bug-fixes" class="hash-link" aria-label="Bug Fixes的直接链接" title="Bug Fixes的直接链接" translate="no">​</a></h3>
<ul>
<li class="">修正 <code>theme.manifest.schema.json</code> 的 <code>$id</code> URL</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="310-2026-06-07"><a href="https://github.com/fecommunity/reactpress/compare/v3.0.0...v3.1.0" target="_blank" rel="noopener noreferrer" class="">3.1.0</a> (2026-06-07)<a href="https://reactpress.cc/zh/blog/changelog#310-2026-06-07" class="hash-link" aria-label="310-2026-06-07的直接链接" title="310-2026-06-07的直接链接" translate="no">​</a></h2>
<p><strong>Toolkit 主题化重构</strong> — 模块化导出，主题开发一等公民。</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="新特性-7">新特性<a href="https://reactpress.cc/zh/blog/changelog#%E6%96%B0%E7%89%B9%E6%80%A7-7" class="hash-link" aria-label="新特性的直接链接" title="新特性的直接链接" translate="no">​</a></h3>
<ul>
<li class=""><strong>Toolkit 3.1</strong>：拆分为 <code>theme</code> / <code>ui</code> / <code>app</code> / <code>plugin</code> 子模块；主题 manifest 解析、外观配置（Formily）、SSR bootstrap、站点设置与预览</li>
<li class=""><strong>CLI 3.0.3</strong>：<code>reactpress nginx</code> 反向代理；<code>db backup</code> 支持 Docker 内 <code>mysqldump</code>；<code>build</code> 目标选择与分步日志；交互体验优化</li>
<li class=""><strong>品牌资产</strong>：<code>public/brand/</code> 集中管理 + <code>pnpm export:brand</code> 一键同步至各目录</li>
<li class=""><strong>文档</strong>：README 新增官方主题章节与 Lighthouse 性能指标</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="bug-fixes-1">Bug Fixes<a href="https://reactpress.cc/zh/blog/changelog#bug-fixes-1" class="hash-link" aria-label="Bug Fixes的直接链接" title="Bug Fixes的直接链接" translate="no">​</a></h3>
<ul>
<li class="">增强 monorepo 根目录检测；主题 manifest schema URL 更新为 <code>reactpress-docs.vercel.app</code></li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="300-2026-05-17"><a href="https://github.com/fecommunity/reactpress/compare/v2.0.2...v3.0.0" target="_blank" rel="noopener noreferrer" class="">3.0.0</a> (2026-05-17)<a href="https://reactpress.cc/zh/blog/changelog#300-2026-05-17" class="hash-link" aria-label="300-2026-05-17的直接链接" title="300-2026-05-17的直接链接" translate="no">​</a></h2>
<p><strong>ReactPress 3.0 平台版</strong> — 装一个包，敲一条命令，一分钟拥有自己的 CMS。</p>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="三大重点">三大重点<a href="https://reactpress.cc/zh/blog/changelog#%E4%B8%89%E5%A4%A7%E9%87%8D%E7%82%B9" class="hash-link" aria-label="三大重点的直接链接" title="三大重点的直接链接" translate="no">​</a></h3>
<ul>
<li class=""><strong>零配置</strong>：<code>reactpress init</code> + <code>reactpress dev</code>，自动生成 <code>.reactpress/config.json</code>、<code>.env</code> 与嵌入式 Docker MySQL</li>
<li class=""><strong>唯一入口</strong>：<code>npm i -g @fecommunity/reactpress@3</code>，命令统一为 <code>reactpress</code></li>
<li class=""><strong>极致 DX</strong>：交互菜单、<code>reactpress doctor</code>、<code>reactpress status</code>、dev 成功后的链接提示</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="新特性-8">新特性<a href="https://reactpress.cc/zh/blog/changelog#%E6%96%B0%E7%89%B9%E6%80%A7-8" class="hash-link" aria-label="新特性的直接链接" title="新特性的直接链接" translate="no">​</a></h3>
<ul>
<li class=""><strong>CLI</strong>：主包 <code>@fecommunity/reactpress</code>；内置 API；<code>reactpress-cli</code> bin deprecated</li>
<li class=""><strong>Headless</strong>：<code>GET /api/health</code>；API Key；Webhook（HMAC 签名）</li>
<li class=""><strong>内容</strong>：定时发布；文章修订历史与回滚</li>
<li class=""><strong>运维</strong>：生产 compose 示例；<code>reactpress db backup</code></li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="breaking-changes">Breaking Changes<a href="https://reactpress.cc/zh/blog/changelog#breaking-changes" class="hash-link" aria-label="Breaking Changes的直接链接" title="Breaking Changes的直接链接" translate="no">​</a></h3>
<ul>
<li class=""><code>@fecommunity/reactpress-cli</code> → <code>@fecommunity/reactpress@3</code></li>
<li class=""><code>@fecommunity/reactpress-server</code> deprecated</li>
<li class="">迁移指南：<a class="" href="https://reactpress.cc/zh/docs/tutorial-extras/migration-2-to-3">2.x → 3.0</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="201-2025-09-26"><a href="https://github.com/fecommunity/reactpress/compare/v2.0.0...v2.0.1" target="_blank" rel="noopener noreferrer" class="">2.0.1</a> (2025-09-26)<a href="https://reactpress.cc/zh/blog/changelog#201-2025-09-26" class="hash-link" aria-label="201-2025-09-26的直接链接" title="201-2025-09-26的直接链接" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="bug-fixes-2">Bug Fixes<a href="https://reactpress.cc/zh/blog/changelog#bug-fixes-2" class="hash-link" aria-label="Bug Fixes的直接链接" title="Bug Fixes的直接链接" translate="no">​</a></h3>
<ul>
<li class="">修正 HttpClient 文件名大小写 (<a href="https://github.com/fecommunity/reactpress/commit/7dd892a8d5b05a3ab24eaf73577848eb25b06450" target="_blank" rel="noopener noreferrer" class="">7dd892a</a>)</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="features">Features<a href="https://reactpress.cc/zh/blog/changelog#features" class="hash-link" aria-label="Features的直接链接" title="Features的直接链接" translate="no">​</a></h3>
<ul>
<li class="">新增 toolkit 包配置 (<a href="https://github.com/fecommunity/reactpress/commit/0ed839d4667d671ea06b088c0bac5a2890680445" target="_blank" rel="noopener noreferrer" class="">0ed839d</a>)</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="200-2025-09-21"><a href="https://github.com/fecommunity/reactpress/compare/v1.10.0...v2.0.0" target="_blank" rel="noopener noreferrer" class="">2.0.0</a> (2025-09-21)<a href="https://reactpress.cc/zh/blog/changelog#200-2025-09-21" class="hash-link" aria-label="200-2025-09-21的直接链接" title="200-2025-09-21的直接链接" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="bug-fixes-3">Bug Fixes<a href="https://reactpress.cc/zh/blog/changelog#bug-fixes-3" class="hash-link" aria-label="Bug Fixes的直接链接" title="Bug Fixes的直接链接" translate="no">​</a></h3>
<ul>
<li class="">修复 server 加载问题 (<a href="https://github.com/fecommunity/reactpress/commit/a6f759b386e32727501b0eea3ea38f5a89dfe700" target="_blank" rel="noopener noreferrer" class="">a6f759b</a>)</li>
<li class="">类型定义修复 (<a href="https://github.com/fecommunity/reactpress/commit/d6491d56f2ffdd19d5a47fda7273958cd4243fb3" target="_blank" rel="noopener noreferrer" class="">d6491d5</a>)</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="features-1">Features<a href="https://reactpress.cc/zh/blog/changelog#features-1" class="hash-link" aria-label="Features的直接链接" title="Features的直接链接" translate="no">​</a></h3>
<ul>
<li class="">新增 hello-world 模板 (<a href="https://github.com/fecommunity/reactpress/commit/7e2c9487ddc6023d7b382250b131fbe828013680" target="_blank" rel="noopener noreferrer" class="">7e2c948</a>)</li>
<li class="">新增 reactpress toolkit (<a href="https://github.com/fecommunity/reactpress/commit/58f9312644736aceb362e517fad8c3b3a83f275f" target="_blank" rel="noopener noreferrer" class="">58f9312</a>)</li>
<li class="">新增 swagger v2 UI (<a href="https://github.com/fecommunity/reactpress/commit/ef9fdc166955b4659c81fb559138ce38ef599cfe" target="_blank" rel="noopener noreferrer" class="">ef9fdc1</a>)</li>
<li class="">新增 twentytwentyfive 主题 (<a href="https://github.com/fecommunity/reactpress/commit/715281fedcf8072348e4b8b6794891c7e67e1f99" target="_blank" rel="noopener noreferrer" class="">715281f</a>)</li>
<li class="">支持 npx 安装 server (<a href="https://github.com/fecommunity/reactpress/commit/e7f7b970bb4dd8b845fcd8dde4048678a403557a" target="_blank" rel="noopener noreferrer" class="">e7f7b97</a>)</li>
<li class="">支持快速安装 (<a href="https://github.com/fecommunity/reactpress/commit/96c1d0a7cc1c72b7f6c489ba236ab6eb78472dee" target="_blank" rel="noopener noreferrer" class="">96c1d0a</a>)</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="1100-2025-08-03"><a href="https://github.com/fecommunity/reactpress/compare/v1.9.0...v1.10.0" target="_blank" rel="noopener noreferrer" class="">1.10.0</a> (2025-08-03)<a href="https://reactpress.cc/zh/blog/changelog#1100-2025-08-03" class="hash-link" aria-label="1100-2025-08-03的直接链接" title="1100-2025-08-03的直接链接" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="features-2">Features<a href="https://reactpress.cc/zh/blog/changelog#features-2" class="hash-link" aria-label="Features的直接链接" title="Features的直接链接" translate="no">​</a></h3>
<ul>
<li class="">新增 config 类型定义 (<a href="https://github.com/fecommunity/reactpress/commit/d8a6fed7bc13f74be0916f80497590c7e737fb86" target="_blank" rel="noopener noreferrer" class="">d8a6fed</a>)</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="190-2025-05-21"><a href="https://github.com/fecommunity/reactpress/compare/v1.8.0...v1.9.0" target="_blank" rel="noopener noreferrer" class="">1.9.0</a> (2025-05-21)<a href="https://reactpress.cc/zh/blog/changelog#190-2025-05-21" class="hash-link" aria-label="190-2025-05-21的直接链接" title="190-2025-05-21的直接链接" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="180-2025-03-22"><a href="https://github.com/fecommunity/reactpress/compare/v1.7.0...v1.8.0" target="_blank" rel="noopener noreferrer" class="">1.8.0</a> (2025-03-22)<a href="https://reactpress.cc/zh/blog/changelog#180-2025-03-22" class="hash-link" aria-label="180-2025-03-22的直接链接" title="180-2025-03-22的直接链接" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="features-3">Features<a href="https://reactpress.cc/zh/blog/changelog#features-3" class="hash-link" aria-label="Features的直接链接" title="Features的直接链接" translate="no">​</a></h3>
<ul>
<li class="">upgrade next version (<a href="https://github.com/fecommunity/reactpress/commit/64cac4dcb9268a6bbb14fbbfe6995406638f7508" target="_blank" rel="noopener noreferrer" class="">64cac4d</a>)</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_aIG4" id="100-2024-09-28"><a href="https://github.com/fecommunity/reactpress/compare/a6b73a189090e0199cc6f803bfb498cdeb7868a5...v1.0.0" target="_blank" rel="noopener noreferrer" class="">1.0.0</a> (2024-09-28)<a href="https://reactpress.cc/zh/blog/changelog#100-2024-09-28" class="hash-link" aria-label="100-2024-09-28的直接链接" title="100-2024-09-28的直接链接" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_aIG4" id="features-4">Features<a href="https://reactpress.cc/zh/blog/changelog#features-4" class="hash-link" aria-label="Features的直接链接" title="Features的直接链接" translate="no">​</a></h3>
<ul>
<li class="">init easy-blog project (<a href="https://github.com/fecommunity/reactpress/commit/a6b73a189090e0199cc6f803bfb498cdeb7868a5" target="_blank" rel="noopener noreferrer" class="">a6b73a1</a>)</li>
</ul>]]></content>
        <author>
            <name>reactpress</name>
            <uri>https://github.com/fecommunity/reactpress</uri>
        </author>
        <category label="ReactPress" term="ReactPress"/>
        <category label="版本发布" term="版本发布"/>
    </entry>
</feed>