get_rest_url

Получает URL конечной точки REST API.

Конечные точки для постов, страниц, пользователей, таксономии и т.д. будут включены в ядро WordPress в версии 4.5. До этих версий, обработка конечных точек должна делаться вручную.

Возвращаемый URL не очищается для вывода на экран. Поэтому перед выводим используйте функцию esc_url().
✈ 1 раз = 0.000043с = очень быстро | 50000 раз = 0.82с = очень быстро PHP 7.0.5, WP 4.4.2
Хуки из функции:
rest_url
Возвращает

Строку. URL до конечной точки REST API.

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

get_rest_url( $blog_id, $path, $scheme );
$blog_id(число)
ID сайта/блога. Передается в [get_home_url()](/function/get_home_url())
По умолчанию: null (текущий сайт)
$path(строка)
REST маршрут (путь). Добавляется в конце URL, последний слэш удаляется, если он есть.
По умолчанию: ‘/’
$scheme(строка)
Схема очистки данных. Передается в [get_home_url()](/function/get_home_url())
По умолчанию: ‘rest’

Примеры

#1 Демонстрация работы

Получим URL различных конечных точек REST

echo get_rest_url();
//> http://wp-kama.ru/wp-json/

echo get_rest_url( 5 );
//> http://wp-kama.ru/wp-json/

echo get_rest_url( 0, '/foo' );
//> http://wp-kama.ru/wp-json/foo

echo get_rest_url( 0, '/foo', 'https' );
//> https://wp-kama.ru/wp-json/foo

Код из


wp-includes/rest-api.php

WP 4.7.2

<?php
function get_rest_url( $blog_id = null, $path = '/', $scheme = 'rest' ) {
	if ( empty( $path ) ) {
		$path = '/';
	}

	if ( is_multisite() && get_blog_option( $blog_id, 'permalink_structure' ) || get_option( 'permalink_structure' ) ) {
		global $wp_rewrite;

		if ( $wp_rewrite->using_index_permalinks() ) {
			$url = get_home_url( $blog_id, $wp_rewrite->index . '/' . rest_get_url_prefix(), $scheme );
		} else {
			$url = get_home_url( $blog_id, rest_get_url_prefix(), $scheme );
		}

		$url .= '/' . ltrim( $path, '/' );
	} else {
		$url = trailingslashit( get_home_url( $blog_id, '', $scheme ) );

		$path = '/' . ltrim( $path, '/' );

		$url = add_query_arg( 'rest_route', $path, $url );
	}

	if ( is_ssl() ) {
		// If the current host is the same as the REST URL host, force the REST URL scheme to HTTPS.
		if ( $_SERVER['SERVER_NAME'] === parse_url( get_home_url( $blog_id ), PHP_URL_HOST ) ) {
			$url = set_url_scheme( $url, 'https' );
		}
	}

	/**
	 * Filters the REST URL.
	 *
	 * Use this filter to adjust the url returned by the get_rest_url() function.
	 *
	 * @since 4.4.0
	 *
	 * @param string $url     REST URL.
	 * @param string $path    REST route.
	 * @param int    $blog_id Blog ID.
	 * @param string $scheme  Sanitization scheme.
	 */
	return apply_filters( 'rest_url', $url, $path, $blog_id, $scheme );
}

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *