rest_api_init
Спрацьовує на початку обробки запиту REST API (коли готується обслуговування REST запиту).
Під час спрацювання цього хука потрібно реєструвати нові маршрути REST (див. register_rest_route() ), щоб бути впевненим, що вони спрацьовуватимуть у момент запиту REST.
Використання
add_action( 'rest_api_init', 'wp_kama_rest_api_init_action'); /** * Function for `rest_api_init` action-hook. * * @param WP_REST_Server $wp_rest_server Server об'єкт. * * @return void */ function wp_kama_rest_api_init_action( $wp_rest_server ){ // action... }
-
$wp_rest_server
(WP_REST_Server) - Об’єкт сервера REST.
Приклади
#1 Створення нової кінцевої точки для свого плагіна
add_action( 'rest_api_init', function(){ register_rest_route( 'myplug/v2', '/posts', array( 'methods' => 'GET', 'callback' => 'myplug_get_post_items', ))); } ); function myplug_get_post_items(){ $posts = get_posts(array ( 'post_status' => 'publish', 'numberposts' => 100 ) ) ; $items = array(); foreach( $posts as $post ){ $items[] = array( 'id' => $post->ID, 'title' => $post->post_title, 'author' => get_the_author_meta( 'display_name', $post->post_author ), 'content' => apply_filters( 'the_content', $post->post_content ), 'teaser' => $post->post_excerpt ); } return $items; }
Після встановлення цього коду, ендпоінт:
GET http://example.com/wp-json/myplug/v2/posts
Віддаватиме пости сайту у зазначеному форматі.
список змін
З версії 4.4.0 | Введено. |
Де викликається хук
rest_api_init
wp-includes/rest-api.php 561
do_action( 'rest_api_init', $wp_rest_server );
Де використовується хук у WordPress
wp-includes/default-filters.php 504
add_action( 'rest_api_init', 'rest_api_default_filters', 10, 1);
wp-includes/default-filters.php 505
add_action( 'rest_api_init', 'register_initial_settings', 10);
wp-includes/default-filters.php 506
add_action( 'rest_api_init', 'create_initial_rest_routes', 99);
wp-includes/default-filters.php 635
add_action( 'rest_api_init', 'wp_oembed_register_route');