#wordpress #wordpress-theming #wordpress-rest-api
#wordpress #wordpress-тематизация #wordpress-rest-api
Вопрос:
Я ищу некоторую помощь в создании пользовательского маршрута rest в моей теме WordPress.
add_action( 'rest_api_init', function () {
register_rest_route( 'wpforms/v1', '/form/(?P<id>d )', array(
'methods' => 'GET',
'callback' => 'wpforms_form_endpoint',
'args' => array(
'id' => array(
'validate_callback' => 'is_numeric';
}
),
),
) );
});
Я хотел бы создать конечную точку для моего WP API следующим образом:
http://localhost/wp-json/wpforms/v1/form/5
А затем иметь возможность отправлять параметры для обработки в моей wpforms_form_endpoint
функции обратного вызова. Как я могу получить эти параметры? Нужно ли их включать в аргументы для маршрута rest или они могут передаваться через метод GET / POST в функцию обратного вызова?
Ответ №1:
Вы получите экземпляр WP_Rest_Request в вашем callback
, например:
function wpforms_form_endpoint($request)
{
$id = $request->get_param('id'); // 5
}
Просто используйте get_param
метод для получения любого параметра. Кроме того, вы можете использовать $request['id']
.
Комментарии:
1. Если у вас есть дополнительные параметры, такие как
name
,message
нужно ли устанавливать каждый из них в качестве аргументов в маршруте rest, или их можно просто передать во вновь созданный маршрут rest?2. Вы должны добавить then в route или in
query string/$_GET
.