Я пытаюсь создать настраиваемую конечную точку для WordPress REST API и передавать параметры через URL-адрес.
Конечная точка в настоящее время:
/wp-json/v1/products/81838240219
Я пытаюсь достичь конечной точки, которая выглядит вот так и может получить параметр идентификатора в обратном вызове.
/wp-json/v1/products?identifier=81838240219
// Custom api endpoint test
function my_awesome_func( $data ) {
$identifier = get_query_var( 'identifier' );
return $identifier;
}
add_action( 'rest_api_init', function () {
register_rest_route( 'api/v1', '/products=(?P<id>\d+)', array(
'methods' => 'GET',
'callback' => 'my_awesome_func',
) );
} );

Сначала вам нужно передать пространство имен в register_rest_route
Нравится
add_action( 'rest_api_init', function () {
register_rest_route( 'namespace/v1', '/product/(?P<id>\d+)', array(
'methods' => 'GET',
'callback' => 'my_awesome_func',
) );
} );
Ваше пространство имен namespace/v1 и ваш маршрут - /product/{id}, как это
/ namespace / v1 / product / 81838240219
и теперь вы можете использовать маршрут внутри своей функции следующим образом
function my_awesome_func( $data ) {
$product_ID = $data['id'];
}
Если вам нужно добавить опции для ex. / namespace / v1 / product / 81838240219? name = Роб
и используйте его внутри функции, подобной этой
function my_awesome_func( $data ) {
$product_ID = $data['id'];
$name = $data->get_param( 'name' );
}
Процесс очень прост, но требует, чтобы вы прочитали этот документация
Я немного изменил предоставленный ответ, чтобы получить желаемую конечную точку:
/ wp-json / api / v1 / product? идентификатор = 81838240219
add_action( 'rest_api_init', function () {
register_rest_route( 'api/v1', '/product/', array(
'methods' => 'GET',
'callback' => 'ea_get_product_data',
) );
} );
function ea_get_product_data( $data ) {
$identifier = $data->get_param( 'identifier' );
return $identifier;
}
Потрясающие. Большое спасибо за Вашу помощь.