rest_output_link_wp_head()WP 4.4.0

Выводит ссылку на корневой REST API маршрут в секции <head> на всех страницах сайта.

Ссылка имеет вид:

<link rel='https://api.w.org/' href='http://wp-test.ru/wp-json/' />

Такая ссылка является уведомлением для клиентских приложений, что у сайта есть свой API.

По умолчанию в WordPress эта функция вызывается через хук wp_head:

add_action( 'wp_head', 'rest_output_link_wp_head', 10, 0 );

Аналогичная ссылка добавляется в заголовки ответа сервера функцией rest_output_link_header(), которая по умолчанию вешается на хук:

add_action( 'template_redirect', 'rest_output_link_header', 11, 0 );
Работает на основе: get_rest_url()
1 раз — 0.004168 сек (очень медленно) | 50000 раз — 4.19 сек (быстро) | PHP 7.1.11, WP 4.9.8

Хуков нет.

Возвращает

null. Ничего (null).

Использование

rest_output_link_wp_head();

Примеры

0

#1 Удалим ссылку на REST API

Данный код не отключает REST API, а лишь отменяет вывод ссылки на всех страницах сайта. Код можно вставлять в плагин или functions.php темы напрямую.

remove_action( 'wp_head', 'rest_output_link_wp_head' );

Заметки

Список изменений

С версии 4.4.0 Введена.

Код rest_output_link_wp_head() WP 6.5.2

function rest_output_link_wp_head() {
	$api_root = get_rest_url();

	if ( empty( $api_root ) ) {
		return;
	}

	printf( '<link rel="https://api.w.org/" href="%s" />', esc_url( $api_root ) );

	$resource = rest_get_queried_resource_route();

	if ( $resource ) {
		printf( '<link rel="alternate" type="application/json" href="%s" />', esc_url( rest_url( $resource ) ) );
	}
}