Merged in feature/81-dev-dev01 (pull request #5)
auto-patch 81-dev-dev01-2023-12-05T22_45_26 * auto-patch 81-dev-dev01-2023-12-05T22_45_26
This commit is contained in:
@@ -322,24 +322,6 @@ class WP_REST_Server {
|
||||
*/
|
||||
$this->send_header( 'X-Content-Type-Options', 'nosniff' );
|
||||
|
||||
/**
|
||||
* Filters whether to send nocache headers on a REST API request.
|
||||
*
|
||||
* @since 4.4.0
|
||||
*
|
||||
* @param bool $rest_send_nocache_headers Whether to send no-cache headers.
|
||||
*/
|
||||
$send_no_cache_headers = apply_filters( 'rest_send_nocache_headers', is_user_logged_in() );
|
||||
if ( $send_no_cache_headers ) {
|
||||
foreach ( wp_get_nocache_headers() as $header => $header_value ) {
|
||||
if ( empty( $header_value ) ) {
|
||||
$this->remove_header( $header );
|
||||
} else {
|
||||
$this->send_header( $header, $header_value );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Filters whether the REST API is enabled.
|
||||
*
|
||||
@@ -394,10 +376,12 @@ class WP_REST_Server {
|
||||
* $_GET['_method']. If that is not set, we check for the HTTP_X_HTTP_METHOD_OVERRIDE
|
||||
* header.
|
||||
*/
|
||||
$method_overridden = false;
|
||||
if ( isset( $_GET['_method'] ) ) {
|
||||
$request->set_method( $_GET['_method'] );
|
||||
} elseif ( isset( $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] ) ) {
|
||||
$request->set_method( $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] );
|
||||
$method_overridden = true;
|
||||
}
|
||||
|
||||
$expose_headers = array( 'X-WP-Total', 'X-WP-TotalPages', 'Link' );
|
||||
@@ -482,6 +466,28 @@ class WP_REST_Server {
|
||||
$code = $result->get_status();
|
||||
$this->set_status( $code );
|
||||
|
||||
/**
|
||||
* Filters whether to send nocache headers on a REST API request.
|
||||
*
|
||||
* @since 4.4.0
|
||||
* @since 6.3.2 Moved the block to catch the filter added on rest_cookie_check_errors() from rest-api.php
|
||||
*
|
||||
* @param bool $rest_send_nocache_headers Whether to send no-cache headers.
|
||||
*/
|
||||
$send_no_cache_headers = apply_filters( 'rest_send_nocache_headers', is_user_logged_in() );
|
||||
|
||||
// send no cache headers if the $send_no_cache_headers is true
|
||||
// OR if the HTTP_X_HTTP_METHOD_OVERRIDE is used but resulted a 4x response code.
|
||||
if ( $send_no_cache_headers || ( true === $method_overridden && strpos( $code, '4' ) === 0 ) ) {
|
||||
foreach ( wp_get_nocache_headers() as $header => $header_value ) {
|
||||
if ( empty( $header_value ) ) {
|
||||
$this->remove_header( $header );
|
||||
} else {
|
||||
$this->send_header( $header, $header_value );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Filters whether the REST API request has already been served.
|
||||
*
|
||||
@@ -1079,7 +1085,6 @@ class WP_REST_Server {
|
||||
|
||||
foreach ( $handlers as $handler ) {
|
||||
$callback = $handler['callback'];
|
||||
$response = null;
|
||||
|
||||
// Fallback to GET method if no HEAD method is registered.
|
||||
$checked_method = $method;
|
||||
@@ -1273,10 +1278,23 @@ class WP_REST_Server {
|
||||
);
|
||||
|
||||
$response = new WP_REST_Response( $available );
|
||||
$response->add_link( 'help', 'https://developer.wordpress.org/rest-api/' );
|
||||
$this->add_active_theme_link_to_index( $response );
|
||||
$this->add_site_logo_to_index( $response );
|
||||
$this->add_site_icon_to_index( $response );
|
||||
|
||||
$fields = isset( $request['_fields'] ) ? $request['_fields'] : '';
|
||||
$fields = wp_parse_list( $fields );
|
||||
if ( empty( $fields ) ) {
|
||||
$fields[] = '_links';
|
||||
}
|
||||
|
||||
if ( $request->has_param( '_embed' ) ) {
|
||||
$fields[] = '_embedded';
|
||||
}
|
||||
|
||||
if ( rest_is_field_included( '_links', $fields ) || rest_is_field_included( '_embedded', $fields ) ) {
|
||||
$response->add_link( 'help', 'https://developer.wordpress.org/rest-api/' );
|
||||
$this->add_active_theme_link_to_index( $response );
|
||||
$this->add_site_logo_to_index( $response );
|
||||
$this->add_site_icon_to_index( $response );
|
||||
}
|
||||
|
||||
/**
|
||||
* Filters the REST API root index data.
|
||||
|
||||
Reference in New Issue
Block a user