get_rest_url( int $blog_id = null, string $path = '/', string $scheme = 'rest' )
Retrieves the URL to a REST endpoint on a site.
Description Description
Note: The returned URL is NOT escaped.
Parameters Parameters
- $blog_id
-
(int) (Optional) Blog ID. Default of null returns URL for current blog.
Default value: null
- $path
-
(string) (Optional) REST route.
Default value: '/'
- $scheme
-
(string) (Optional) Sanitization scheme.
Default value: 'rest'
Return Return
(string) Full URL to the endpoint.
Source Source
File: wp-includes/rest-api.php
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 // To work around this, we manually add index.php to the 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'] ) ) { // 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' ); } } if ( is_admin() && force_ssl_admin() ) { // In this situation the home URL may be http:, and `is_ssl()` may be // false, but the 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 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 ); }
Expand full source code Collapse full source code View on Trac
Changelog Changelog
Version | Description |
---|---|
4.4.0 | Introduced. |
User Contributed Notes User Contributed Notes
You must log in before being able to contribute a note or feedback.
Example: