From 50f8eff5d1db1667b1d062de1bac6cc8a9ca2803 Mon Sep 17 00:00:00 2001 From: James Nylen Date: Thu, 18 May 2017 17:48:38 +0000 Subject: [PATCH] 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. git-svn-id: https://develop.svn.wordpress.org/trunk@40782 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/rest-api.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/wp-includes/rest-api.php b/src/wp-includes/rest-api.php index 57e4e9f6fd..c831fed7ec 100644 --- a/src/wp-includes/rest-api.php +++ b/src/wp-includes/rest-api.php @@ -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 );