为开发人员定制WordPress:开发自定义REST API端点

作者 : King 本文共4448个字,预计阅读时间需要12分钟 发布时间: 2025-05-11 共6人阅读

为开发人员定制WordPress:开发自定义REST API端点插图

WordPress 是世界上最流行的内容管理系统(CMS)之一,知识兔可以帮助大小企业建立和创建各种形式的网站内容。但是,WordPress已经不仅仅支持传统的博客内容,这在很大程度上要归功于WordPress REST API。

WordPress REST API 将 WordPress 和其他外部网络应用程序连接起来。它为更方便的交流分享了便利,并帮助您构建与内容管理系统平台无缝集成的身临其境、引人入胜的网络体验。

该 API 使用端点以 JSON 对象的形式检索和操作 WordPress 内容。有了这些端点,您就可以远程创建、读取、更新和删除(CRUD)WordPress 内容,而无需登录 WordPress 管理后台,从而提高了灵活性并扩展了 WordPress 核心功能以外的功能。

本指南将探讨什么是 WordPress REST API、它的好处、它如何扩展 WordPress 的基本功能,以及如何创建、注册和访问自定义端点。

前提条件

要学习本教程,您需要:

  • 了解 REST API
  • 已设置好的 WordPress 网站
  • 使用 WordPressPHP 的知识

了解 WordPress REST API

WordPress REST API 是一个功能强大的接口,允许您使用标准 HTTP 方法与 WordPress 网站进行编程交互。

它的默认功能包括以结构化的JSON格式访问和操作各种类型的WordPress数据,如、页面、评论、用户和分类法。您还可以远程对内容执行 CRUD 操作。

不过,WordPress REST API的真正价值在于其通过自定义端点实现的可扩展性。您可以创建自定义端点来定制 API 以满足特定需求,例如集成附加功能、第三方服务或独特的数据结构。这种灵活性使您能够在 WordPress 的基础上构建高度定制、功能丰富的应用程序。

如何规划自定义 API 端点

规划自定义端点的结构和目的是高效 API 开发的关键。根据您的特定需求量身定制的端点需要仔细考虑,以确保最佳功能。战略规划有助于提高可扩展性和适应性,使端点面向未来,以适应不断变化的业务需求。

在实施前规划自定义应用程序接口端点可分享以下支持:

  • 明确端点功能 – 规划端点可明确端点的具体功能、预期数据类型和用途。
  • 一致性和开发效率 – 规划还能确保端点使用、响应类型和格式的一致性,从而改善与应用程序接口的交互。此外,了解应用程序接口的目的有助于正确实施,减少开发时间和出错风险。
  • 可扩展性和适应性 – 确定端点的需求有助于未来适应不断变化的业务需求和要求,而无需完全重新设计。
  • 安全性 – 正确的端点规划有助于确定访问或操作数据是否需要身份验证。通过应用程序接口获取内容有时不需要用户身份验证。不过,对于包含敏感数据或未经授权数据的内容,必须定义安全要求并实施授权和访问控制等措施,以帮助确保数据安全。

接下来的实践部分将介绍如何创建一个自定义端点,从 WordPress 数据库网站检索客户评价,该端点的地址为 site-domain/wp-json/custom/v2/testimonials

发送请求后,端点会返回一个 JSON 对象,其中包含回调函数中定义的 WordPress 网站上的推荐信息。

为端点创建自定义类型

首先,您需要创建自定义类型。

  1. WordPress 管理面板的 “外观” 部分导航到 “主题文件编辑器“。
  2. 打开主题的 function.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, // This enables REST API support));}add_action('init', 'create_custom_testimonial_type');

     

    这段代码创建了一个自定义的 “testimonials” 类型,并启用了 WordPress REST API 支持( 'show_in_rest' => true )。add_action 钩子调用 create_testimonial_type 回调函数,并在执行过程中启动它。
    您可以根据自己的需要删除或添加标签和参数。

  3. 单击更新文件保存更改。
  4. 更新文件保存更改创建 custom_testimonial 文章类型。
    刷新仪表盘,查看 WordPress 仪表板中添加的 “Testimonials” 选项。新创建的推荐类型:新创建的推荐类型
  5. 点击 Testimonials > 新增文字,创建包含推荐的新帖。您可以使用 Pullquote 区块。根据推荐信的展示方式,知识兔也可以使用其他区块。

下面是两个使用 Pullquote 区块创建的推荐范例:

新创建的客户推荐

新创建的客户推荐

在 WordPress 中注册自定义端点

注册自定义端点可使其通过REST API使用。这需要使用 register_rest_route 函数,在 rest_api_init 钩子上调用该函数,并分享一个在路由被调用时将被调用的回调方法。

将以下代码粘贴到主题的 function.php 文件中:

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

 register_rest_route() 包含三个参数:

  • 路由命名空间 ( $route_namespace ) – 这是 URL 段的第一部分,应遵循供应商/版本号模式。供应商代表供应商或主题标签。命名空间有助于区分端点,并帮助客户联系有关自定义端点的支持。本教程使用 custom/v2 命名空间。
  • 基本 URL$route ) – 它紧跟命名空间,是映射到方法的 URL。您可以为路由注册多个端点。本教程中使用的是 /testimonials 路由,它告诉端点检索推荐信。
  • 端点的选项$args ) – 这是一个数组,包含调用路由时使用的 HTTP 方法,以及发送请求时端点将调用的回调函数。我们将在下一节详细介绍回调函数。

最后,请注意您的端点地址。端点的格式是 site-address/wp-json/namespace/route。因此,在本例中,端点将是 https://www.staging.kidspartysanctuary.co.uk/wp-json/custom/v2/testimonials

为端点执行回调函数

创建自定义类型并注册自定义端点后,下一步就是编写回调函数。每次访问端点时,都会调用该回调函数。

  1. 使用下面的代码声明 get_testimonials 回调函数:
    function get_testimonials(){}
  2. 初始化一个空的推荐数组,知识兔用于存储检索到的 WordPress 推荐数据:
    $testimonials = array();
  3. WP_Query 调用设置一个名为 $args 的数组,其中包含查询参数。
    $args = array('post_type' => 'testimonials', //specifies you want to query the custom post type 'testimonial','nopaging' => true, // no pagination, but retrieve all testimonials at once),
  4. 创建一个 WP_Query 类实例,该实例接收 $args 数组,知识兔根据指定参数执行查询,并将 WordPress 查询结果存储在 $query 变量中。
    $query = new WP_Query($args)
  5. 编写一个条件语句来检查是否有推荐文章。然后知识兔,创建一个 while 循环来遍历,并返回推荐的 title 和 content
    if ( $query->have_posts() ) {while ( $query->have_posts() ) {$query->the_post();$testimonial_data = array( /*an array that stores the title and content of every post*/'title' => get_the_title(),'content' => get_the_content(),// Add other fields as needed);$testimonials[] = $testimonial_data; }wp_reset_postdata(); /* restores $post global to the current post to avoid any conflicts in subsequent queries*/}return rest_ensure_response( $testimonials ); /*ensures response is correctly set as a response object for consistency*/

    下面是完整的代码:

    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();$testimonial_data = array('title' => get_the_title(),'content' => get_the_content(),// Add other fields as needed);$testimonials[] = $testimonial_data;}wp_reset_postdata();}return rest_ensure_response( $testimonials );}
  6. 使用 Postman 测试您的端点,验证是否可以访问数据。Postman 显示成功响应
    Postman 显示成功响应。您也可以使用浏览器进行测试。在浏览器地址栏输入 URL site-domain/wp-json/custom/v2/testimonials,访问端点。

    访问端点时浏览器显示的结果访问端点时浏览器显示的结果。

下载仅供下载体验和测试学习,不得商用和正当使用。

下载体验

请输入密码查看下载!

如何免费获取密码?

点击下载

小鱼网是一个美好的开源学习社区,学习编程,学习WordPress,下载WordPress插件主题,
小鱼网 » 为开发人员定制WordPress:开发自定义REST API端点

常见问题FAQ

发表回复

分享最优质的学习资料

立即查看 了解详情