rest_api_init хук-подіяWP 4.4.0

Спрацьовує на початку обробки запиту 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.

Приклади

0

#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');

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *