rest_pre_dispatch хук-фильтр . WP 4.4.0
Если фильтр вернет не пустое значение, то оно будет использовано для создания ответа на REST запрос. См. параметр $result.
Использование
add_filter( 'rest_pre_dispatch', 'filter_function_name_5911', 10, 3 ); function filter_function_name_5911( $result, $server, $request ){ // filter... return $result; }
- $result(смешанный)
Ответ на запрос, который заменить дефолтный ответ REST сервера. Если вернуть пустое значение (false|null|0|''), то ничего не произойдет и REST будет работать по дефолту. Может быть возвращены следующие объекты:
- WP_REST_Response
- WP_HTTP_Response
- WP_Error
- Пустота — false null 0 '' []
- $server(WP_REST_Server)
- Экземпляр сервера.
- $request(WP_REST_Request)
- Текущий запрос к REST API в виде объекта WP_REST_Request.
Примеры
#1 Закроем все маршруты REST от публичного доступа
add_filter( 'rest_pre_dispatch', 'close_rest_routes', 10, 3 ); function close_rest_routes( $result, $rest_server, $request ){ // maybe authentication error already set if( is_null( $result ) && ! current_user_can('manage_options') ) return new WP_Error( 'rest_not_logged_in', 'Your capability is low.', [ 'status' => 401 ] ); return $result; }