首页 > 解决方案 > 响应 wordpress 插件中的自定义 URL

问题描述

因此,我正在尝试编写一个类似于 API 并响应特定 HTTP 请求的 wordpress 插件。我在我的插件中缓存了一些数据,我想使用 AJAX 或 sth 来获取另一端的数据。我应该使用哪些操作或过滤器?我试过使用请求过滤器,但不知道它是如何工作的。

标签: wordpress

解决方案


为此使用 WP REST API:https ://developer.wordpress.org/rest-api/extending-the-rest-api/adding-custom-endpoints/

下面是一个如何添加自定义路由以及如何处理请求的简单示例。

add_action( 'rest_api_init', function () {
  register_rest_route( 'myplugin/v1', '/my-custom-route/(?P<id>\d+)', array(
    'methods' => 'GET',
    'callback' => 'my_awesome_func',
  ) );
} );


function my_awesome_func( WP_REST_Request $request ) {
  // You can access parameters via direct array access on the object:
  $param = $request['some_param'];

  // Or via the helper method:
  $param = $request->get_param( 'some_param' );

  // You can get the combined, merged set of parameters:
  $parameters = $request->get_params();

  // The individual sets of parameters are also available, if needed:
  $parameters = $request->get_url_params();
  $parameters = $request->get_query_params();
  $parameters = $request->get_body_params();
  $parameters = $request->get_json_params();
  $parameters = $request->get_default_params();

  // Uploads aren't merged in, but can be accessed separately:
  $parameters = $request->get_file_params();
}

推荐阅读