REST API: Do not set `X-WP-Deprecated*` headers as often.

Only set these headers if (1) `WP_DEBUG` is enabled and (2) headers have not already been sent.

Previously, this code could generate warnings by trying to set a header after response data has already been sent.  This happens when code attached to the `shutdown` filter calls a deprecated function, for example.

Also, these headers are unlikely to be useful in the majority of cases; let's only send them if `WP_DEBUG` is enabled.

Props kraftbj, jnylen0, ocean90, rmccue.
Fixes #40787.

Built from https://develop.svn.wordpress.org/trunk@40782


git-svn-id: http://core.svn.wordpress.org/trunk@40640 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
James Nylen 2017-05-18 17:49:42 +00:00
parent 8ef02e5ec7
commit 21b1135b1c
2 changed files with 7 additions and 1 deletions

View File

@ -481,6 +481,9 @@ function rest_ensure_response( $response ) {
* @param string $version Version.
*/
function rest_handle_deprecated_function( $function, $replacement, $version ) {
if ( ! WP_DEBUG || headers_sent() ) {
return;
}
if ( ! empty( $replacement ) ) {
/* translators: 1: function name, 2: WordPress version number, 3: new function name */
$string = sprintf( __( '%1$s (since %2$s; use %3$s instead)' ), $function, $version, $replacement );
@ -502,6 +505,9 @@ function rest_handle_deprecated_function( $function, $replacement, $version ) {
* @param string $version Version.
*/
function rest_handle_deprecated_argument( $function, $message, $version ) {
if ( ! WP_DEBUG || headers_sent() ) {
return;
}
if ( ! empty( $message ) ) {
/* translators: 1: function name, 2: WordPress version number, 3: error message */
$string = sprintf( __( '%1$s (since %2$s; %3$s)' ), $function, $version, $message );

View File

@ -4,7 +4,7 @@
*
* @global string $wp_version
*/
$wp_version = '4.8-beta1-40781';
$wp_version = '4.8-beta1-40782';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.