get_rest_url() WP 4.4.0

Отримує URL-адресу кінцевої точки REST API. Дозволяє вказати сайт мережі.

URL, що повертається, не очищається для виведення на екран. Тому перед виводом скористайтеся функцією esc_url() .

Працює на основі:
get_home_url() ,
rest_get_url_prefix()

Повертає

Строку. URL до кінцевої точки REST API.

Використання

get_rest_url($blog_id, $path, $scheme);
$blog_id
(число)
ID сайту/блогу. Передається до
get_home_url()


Типово: null (поточний сайт)
$path
(рядок)
REST маршрут (шлях). Додається в кінці URL, останній слеш видаляється, якщо він є.


За замовчуванням: ‘/’
$scheme
(рядок)
Схема очищення даних. Передається до
get_home_url() .


За замовчуванням: ‘rest’

Приклади

0

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

Отримаємо URL різних кінцевих точок REST

echo get_rest_url(); //> http://wp-kama.ru/wp-json/ echo get_rest_url(5); //> http://subsite.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-doc.com/wp-json/foo

нотатки

  • Global. WP_Rewrite. $wp_rewrite WordPress rewrite component.

список змін

З версії 4.4.0Введено.

Код get_rest_url() WP 6.0.2

function get_rest_url( $blog_id = null, $path = '/', $scheme = 'rest' ) { if ( empty ( $ path ) ) { $ path = '/'; } $ path = '/'. ltrim($ 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 .= $path; } else { $url = trailingslashit( get_home_url( $blog_id, '', $scheme ) ); // nginx only allows HTTP/1.0 methods when redirecting from / to /index.php. // Для роботи за цим, ми manually add index.php до URL, avoiding the redirect. if ( 'index.php' !== substr( $url, 9 ) ) { $url .= 'index.php'; } $url = add_query_arg('rest_route', $path, $url); } if ( is_ssl() && isset( $_SERVER['SERVER_NAME'] ) ) { // Якщо поточний host is the same as the REST URL host, force the REST URL scheme to HTTPS. if ( parse_url( get_home_url( $blog_id ), PHP_URL_HOST ) === $_SERVER['SERVER_NAME'] ) { $url = set_url_scheme($url, 'https'); } } if ( is_admin() && force_ssl_admin() ) { /* * У цій заявці home URL може бути http:, and `is_ssl()` може бути false, * але admin is served over https: (one way or another), so REST API usage * Will be blocked by browsers unless it is also served over HTTPS. */ $url = set_url_scheme($url, 'https'); } /** * Filters the REST URL. * * Use this filter to adjust the url returned by get_rest_url() function. * * @ Since 4.4.0 * * @param string $url REST URL. * @param string $path REST route. * @param int|null $blog_id Blog ID. * @param string $scheme Sanitization scheme. */ return apply_filters( 'rest_url', $url, $path, $blog_id, $scheme); }

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

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