WordPress中wp-json是干什么用的?

WordPress中wp-json是干什么用的?,说的详细一些。WordPress网页的头部中有比如
这样的标签,这又是干什么用的?

这些标签是 WordPress REST API 的核心体现,它代表了现代 WordPress 开发的一个重要方向。

我们来分两部分详细说明:

第一部分:wp-json 是干什么用的?

wp-jsonWordPress REST API 的默认端点(Endpoint)前缀

简单来说,WordPress REST API 提供了一种标准化的方式,让外部应用(或其他网站)可以通过 HTTP 请求(GET, POST, PUT, DELETE 等)来与您的 WordPress 网站进行交互,以 JSON 格式获取、创建、更新或删除数据

您可以把它理解为您网站的一套“外部编程接口”或“数据通道”。

它的主要作用和用途包括:

  1. 解耦的(Headless/Decoupled)WordPress
    • 这是最流行的用法。您可以用 WordPress 作为后台内容管理系统(CMS),来管理和存储内容。
    • 然后使用 React, Vue, Angular, Native Mobile Apps (iOS/Android) 或其他任何前端技术来构建网站的前端界面或移动应用。
    • 这个前端界面不再使用 PHP 模板,而是通过调用 wp-json 提供的 API 接口来获取文章、页面、用户等数据,然后动态地渲染展示给用户。这种方式赋予了前端开发极大的灵活性。
  2. 与其他系统集成
    • 其他软件或服务可以通过 API 与您的 WordPress 网站交互。例如,一个外部系统在完成一笔交易后,自动通过 API 在您的网站上创建一篇新的日志或更新一个自定义字段。
  3. 自动化任务
    • 开发者可以编写脚本,通过 API 批量处理内容,比如批量更新文章、导入大量产品等。
  4. 为 WordPress 核心、主题和插件提供支持
    • WordPress 自身的块编辑器(Gutenberg)就大量使用 REST API 来实时加载和保存内容。
    • 很多现代插件和主题也使用 API 来实现无刷新(Ajax)交互,提供更流畅的用户体验。

一个简单的例子:
要获取您网站上最新的10篇文章,您可以访问这个 URL:
http://your-site.com/wp-json/wp/v2/posts?per_page=10

服务器会返回一个 JSON 格式的数据,包含了文章标题、内容、作者、发布时间等所有信息,前端应用就可以解析这个 JSON 数据并展示了。


第二部分:网页头部中的 <link> 标签是干什么用的?

您观察到的这些 <link> 标签是 API 发现机制 的一部分。它们的主要作用是声明和告知外界(尤其是机器和搜索引擎)您的网站提供了 REST API 服务,并指明这些服务的地址在哪里

这类似于 RSS Feed 的发现机制(<link rel="alternate" type="application/rss+xml" ...>)。

我们来逐一解析您提供的标签:

1. <link rel="https://api.w.org/" href="http://localhost/wp-duoxin/wp-json/" />

  • rel="https://api.w.org/":
    这是一个关系类型。它明确地定义了此链接与 WordPress API 的关联。可以把它看作一个唯一的标识符,意思是“嘿,这里指向的是本网站的 API 入口”。
  • href="http://localhost/wp-duoxin/wp-json/":
    这是 API 的根端点地址。它指明了要访问本网站的 API,基础 URL 就是这个。所有 API 请求都会以这个 URL 为起点(例如,在这个 URL 后面加上 /wp/v2/posts 来获取文章)。

这个标签的作用是: 告诉任何“懂得”WordPress API 的客户端(如爬虫、开发工具、其他应用程序):“我这个网站支持 REST API,它的入口就在 http://localhost/wp-duoxin/wp-json/。”

2. <link rel="alternate" type="application/json" href="http://localhost/wp-duoxin/wp-json/wp/v2/posts/59" />

  • rel="alternate":
    表示这是当前页面的另一种表现格式
  • type="application/json":
    明确说明了这种替代格式是 JSON 数据。
  • href="http://localhost/wp-duoxin/wp-json/wp/v2/posts/59":
    提供了当前页面(很可能是一篇单独的文章)对应的 JSON 格式数据的直接链接。这里的 59 很可能就是这篇文章的 ID。

这个标签的作用是: 告诉外界(包括搜索引擎),当前这个 HTML 页面还有一个机器可读的 JSON 版本,地址就在 href 里。这对于 SEO内容发现非常有意义。

  • 搜索引擎(如果它们支持理解这种格式)可能会索引这种结构化数据。
  • 开发者或工具可以很容易地发现并获取纯数据版本的内容,而不需要从 HTML 中费力地抓取和解析。

总结

项目作用类比
/wp-json/WordPress REST API 的入口地址。提供了一套通过 HTTP 请求以 JSON 格式操作网站数据的接口。网站的“数据电源插座”,任何符合标准的“插头”(应用)都可以插上来获取电力(数据)。
<link rel="https://api.w.org/"... />声明本站支持 WordPress API,并指明 API 的根目录在哪里。用于API 发现在门口贴一个“内有插座”的标识,告诉别人这里有充电服务。
<link rel="alternate" type="application/json"... />提供当前页面的 JSON 数据格式版本。用于内容发现,方便机器获取结构化数据。不仅告诉别人有插座,还直接给了一个适配器(链接),指明这个具体物件(文章)的数据线在哪插。

总而言之,这一切都标志着您的 WordPress 网站不仅仅是一个传统的、只能输出 HTML 的网站,而是一个成熟的数据平台,为更广泛、更现代化的应用和集成打开了大门。