#wordpress #rest #routes
#wordpress #остальное #маршруты
Вопрос:
У меня есть класс для регистрации и выполнения моих пользовательских конечных точек.
Если я зарегистрирую свои конечные точки вне класса, я могу получить параметры своей конечной точки в своей функции обратного вызова. Но внутри класса параметры не передаются
Здесь код:
class MYPLUGIN_RestAPI {
public function __construct() {
add_action('rest_api_init', array($this, register_routes));
}
public function register_routes (){
register_rest_route (
'myplugin/v1',
'/book/(?P<id>[a-z0-9 .-] )',
array(
'methods' => 'GET',
'callback' => array($this, "endpoint_book_cb")
)
);
}
public function endpoint_book_cb($data){
$result['code'] = 200;
$result['message'] = "Horrayyy!!!!!!!";
$result['data'] = $data;
return $result;
}
}
new MYPLUGIN_RestAPI();
Вот что я получаю, когда запускаю эту конечную точку
{"code":200,"message":"Horrayyy!!!!!!!","data":{}}
Есть идеи, почему?
Комментарии:
1. попробуйте использовать общедоступную функцию __construct($data — null)… внутри вы можете проверить, имеет ли значение $data значение null, и делать что угодно оттуда
2. То же самое. {«code»:200,»message»:»Ужасный!!!!!!!»,» данные»:{}}
Ответ №1:
Найдено решение:
public function wpfm_endpoints_cb(WP_REST_Request $request){
$result['code'] = 200;
$result['message'] = "Horrayyy!!!!!!!";
$result['data'] = $request->get_params();
return $result;
}
Комментарии:
1. Для меня ошибка заключалась в том, что я определил метод обратного вызова таким, каким
private
он должен бытьpublic
.