rest_endpoints
Позволяет изменить массив доступных конечных точек REST API.
Использование
add_filter( 'rest_endpoints', 'wp_kama_rest_endpoints_filter' ); /** * Function for `rest_endpoints` filter-hook. * * @param array $endpoints The available endpoints. An array of matching regex patterns, each mapped to an array of callbacks for the endpoint. These take the format `'/path/regex' => array( $callback, $bitmask )` or `'/path/regex' => array( array( $callback, $bitmask ). * * @return array */ function wp_kama_rest_endpoints_filter( $endpoints ){ // filter... return $endpoints; }
- $endpoints(массив)
Массив regex доступных конечных точек, каждый из которых сопоставлен с массивом коллбэков конечной точки:
'/path/regex' => [ $callback, $bitmask ] // или '/path/regex' => [ [ $callback, $bitmask ], ... ]
Примеры
#1 Удаление ненужных эндпоинтов
add_filter( 'rest_endpoints', 'remove_needless_endpoints' ); function remove_needless_endpoints( $endpoints ) { if ( ! is_front_page() ) { return $endpoints; } $remove = [ '/', 'wp/v2/posts', 'wp/v2/pages', 'wp/v2/media', 'wp/v2/menu-items', 'wp/v2/blocks', 'wp/v2/templates', 'wp/v2/template-parts', 'wp/v2/navigation', 'wp/v2/types', 'wp/v2/statuses', 'wp/v2/taxonomies', 'wp/v2/categories', 'wp/v2/tags', 'wp/v2/menus', 'wp/v2/comments', //'wp/v2/options', //'wp/v2/users', //'wp/v2/taxonomies', //'wp/v2/post-types', //'wp/v2/menus', //'wp/v2/revisions', //'wp/v2/post-formats', //'wp/v2/wp-embed', //'wp/v2/wp-comments', ]; $filter_callback = static function ( $route ) use ( $remove ) { foreach ( $remove as $needle ) { if ( ( '/' === $needle && '/' === $route ) || str_contains( $route, $needle ) ) { return false; } } return true; }; return array_filter( $endpoints, $filter_callback, ARRAY_FILTER_USE_KEY ); }
Список изменений
С версии 4.4.0 | Введена. |
Где вызывается хук
rest_endpoints
wp-includes/rest-api/class-wp-rest-server.php 973
$endpoints = apply_filters( 'rest_endpoints', $endpoints );