如何创建自定义的WordPress REST API端点 - Kinsta

作者:API传播员 · 2025-11-21 · 阅读时间:4分钟

WordPress REST API 是连接 WordPress 与其他外部 Web 应用程序的桥梁。它不仅能促进更高效的通信,还能帮助开发者构建与 CMS 平台无缝集成的沉浸式网络体验。本指南将详细介绍 WordPress REST API 的功能、优势,以及如何创建、注册和访问自定义端点。


了解 WordPress REST API

WordPress REST API 是一个强大的接口,允许开发者通过标准 HTTP 方法以编程方式与 WordPress 网站交互。默认情况下,它支持以结构化 JSON 格式访问和操作多种 WordPress 数据类型,包括文章、页面、评论、用户和分类等。此外,开发者还可以远程执行 CRUD 操作。

WordPress REST API 的真正价值在于其可扩展性。通过创建自定义端点,开发者可以根据特定需求定制 API,例如集成第三方服务或实现独特的数据结构。这种灵活性使得开发者能够在 WordPress 平台上构建高度定制化和功能丰富的应用程序。


如何规划自定义 API 端点

在开发自定义 API 端点之前,合理的规划是确保高效开发的关键。以下是规划自定义端点时需要考虑的几个方面:

  • 端点功能的清晰度:明确端点的具体功能、预期的数据类型和使用场景。
  • 一致性和开发效率:确保端点的响应类型和格式一致性,从而提升开发效率并减少错误风险。
  • 可扩展性和适应性:设计端点时需考虑未来的业务需求,避免频繁的重新设计。
  • 安全性:确保敏感数据的访问受到身份验证和授权控制的保护。

通过合理规划,您可以创建一个既满足当前需求又具备未来适应性的 API 端点。


为端点创建自定义文章类型

在 WordPress 中创建自定义端点的第一步是定义一个自定义文章类型。以下是具体步骤:

  1. 导航到主题文件编辑器
    在 WordPress 管理后台,进入 外观 > 主题文件编辑器

  2. 添加自定义文章类型代码
    打开主题的 functions.php 文件,添加以下代码:

    function create_custom_testimonial_type() {
       register_post_type('testimonials', array(
           'labels' => array(
               'name' => 'Testimonials',
               'singular_name' => 'Testimonial',
           ),
           'public' => true,
           'has_archive' => true,
           'show_in_rest' => true, // 启用 REST API 支持
       ));
    }
    add_action('init', 'create_custom_testimonial_type');

    这段代码定义了一个名为 testimonials 的自定义文章类型,并启用了 REST API 支持。

  3. 保存更改并刷新后台
    保存文件后,刷新 WordPress 后台,您将看到新增的 推荐 选项。

  4. 添加新文章
    推荐 > 添加新文章 中,创建一些测试数据。


在 WordPress 中注册自定义端点

注册自定义端点需要使用 register_rest_route 函数。以下是具体步骤:

  1. 添加注册代码
    functions.php 文件中添加以下代码:

    add_action('rest_api_init', function() {
       register_rest_route('custom/v2', '/testimonials', array(
           'methods' => 'GET',
           'callback' => 'get_testimonials',
       ));
    });

    该函数的参数包括:

    • 命名空间:如 custom/v2,用于区分不同的端点。
    • 路由:如 /testimonials,指定端点的路径。
    • 选项:包括 HTTP 方法和回调函数。
  2. 记录端点地址
    端点的完整地址格式为:站点域名/wp-json/命名空间/路由。例如:https://example.com/wp-json/custom/v2/testimonials


实现端点的回调函数

完成端点注册后,需要实现回调函数以处理请求并返回数据。

  1. 声明回调函数

    function get_testimonials() {
       $testimonials = array();
       $args = array(
           'post_type' => 'testimonials',
           'nopaging' => true,
       );
       $query = new WP_Query($args);
    
       if ($query->have_posts()) {
           while ($query->have_posts()) {
               $query->the_post();
               $testimonials[] = array(
                   'title' => get_the_title(),
                   'content' => get_the_content(),
               );
           }
           wp_reset_postdata();
       }
    
       return rest_ensure_response($testimonials);
    }
  2. 测试端点
    使用 Postman 或浏览器访问端点地址,例如:https://example.com/wp-json/custom/v2/testimonials,验证返回的数据是否正确。


总结

通过本教程,您已经了解了如何在 WordPress 中创建自定义 REST API 端点。通过定义自定义文章类型、注册端点和实现回调函数,您可以轻松扩展 WordPress 的功能,为用户提供更丰富的交互体验。

原文链接: https://kinsta.com/blog/wp-rest-api-custom-endpoint/