<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[54205] trunk/src/wp-admin/includes/class-wp-site-health.php: Site Health: Improve the details provided by the REST API checks.</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="https://core.trac.wordpress.org/changeset/54205">54205</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"https://core.trac.wordpress.org/changeset/54205","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>Clorith</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2022-09-19 15:28:33 +0000 (Mon, 19 Sep 2022)</dd>
</dl>
<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>Site Health: Improve the details provided by the REST API checks.
The descriptions provided whenever a REST API check failed lacked details that would help in troubleshooting any issues, most notably the actual REST API endpoint that was being tested.
Adding this vital piece of detail, along with a revamp of the error messages shown, where previously there was a risk that the markup of your website was included as an error message, improves the overall user experience, and gives more accurate details that can be looked when looking up how to fix or improve the behavior of the REST API.
Props dingo_d, shetheliving.
Fixes <a href="https://core.trac.wordpress.org/ticket/54617">#54617</a>.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunksrcwpadminincludesclasswpsitehealthphp">trunk/src/wp-admin/includes/class-wp-site-health.php</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunksrcwpadminincludesclasswpsitehealthphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-admin/includes/class-wp-site-health.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-admin/includes/class-wp-site-health.php 2022-09-19 14:18:18 UTC (rev 54204)
+++ trunk/src/wp-admin/includes/class-wp-site-health.php 2022-09-19 15:28:33 UTC (rev 54205)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2052,7 +2052,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> ),
</span><span class="cx" style="display: block; padding: 0 10px"> 'description' => sprintf(
</span><span class="cx" style="display: block; padding: 0 10px"> '<p>%s</p>',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- __( 'The REST API is one way WordPress, and other applications, communicate with the server. One example is the block editor screen, which relies on this to display, and save, your posts and pages.' )
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ __( 'The REST API is one way that WordPress and other applications communicate with the server. For example, the block editor screen relies on the REST API to display and save your posts and pages.' )
</ins><span class="cx" style="display: block; padding: 0 10px"> ),
</span><span class="cx" style="display: block; padding: 0 10px"> 'actions' => '',
</span><span class="cx" style="display: block; padding: 0 10px"> 'test' => 'rest_availability',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2090,16 +2090,18 @@
</span><span class="cx" style="display: block; padding: 0 10px"> $result['label'] = __( 'The REST API encountered an error' );
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $result['description'] .= sprintf(
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- '<p>%s</p>',
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ '<p>%s</p><p>%s<br>%s</p>',
+ __( 'When testing the REST API, an error was encountered:' ),
</ins><span class="cx" style="display: block; padding: 0 10px"> sprintf(
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- '%s<br>%s',
- __( 'The REST API request failed due to an error.' ),
- sprintf(
- /* translators: 1: The WordPress error message. 2: The WordPress error code. */
- __( 'Error: %1$s (%2$s)' ),
- $r->get_error_message(),
- $r->get_error_code()
- )
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // translators: %s: The REST API URL.
+ __( 'REST API Endpoint: %s' ),
+ $url
+ ),
+ sprintf(
+ // translators: 1: The WordPress error code. 2: The WordPress error message.
+ __( 'REST API Response: (%1$s) %2$s' ),
+ $r->get_error_code(),
+ $r->get_error_message()
</ins><span class="cx" style="display: block; padding: 0 10px"> )
</span><span class="cx" style="display: block; padding: 0 10px"> );
</span><span class="cx" style="display: block; padding: 0 10px"> } elseif ( 200 !== wp_remote_retrieve_response_code( $r ) ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2108,12 +2110,18 @@
</span><span class="cx" style="display: block; padding: 0 10px"> $result['label'] = __( 'The REST API encountered an unexpected result' );
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $result['description'] .= sprintf(
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- '<p>%s</p>',
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ '<p>%s</p><p>%s<br>%s</p>',
+ __( 'When testing the REST API, an unexpected result was returned:' ),
</ins><span class="cx" style="display: block; padding: 0 10px"> sprintf(
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- /* translators: 1: The HTTP error code. 2: The HTTP error message. */
- __( 'The REST API call gave the following unexpected result: (%1$d) %2$s.' ),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // translators: %s: The REST API URL.
+ __( 'REST API Endpoint: %s' ),
+ $url
+ ),
+ sprintf(
+ // translators: 1: The WordPress error code. 2: The HTTP status code error message.
+ __( 'REST API Response: (%1$s) %2$s' ),
</ins><span class="cx" style="display: block; padding: 0 10px"> wp_remote_retrieve_response_code( $r ),
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- esc_html( wp_remote_retrieve_body( $r ) )
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ wp_remote_retrieve_response_message( $r )
</ins><span class="cx" style="display: block; padding: 0 10px"> )
</span><span class="cx" style="display: block; padding: 0 10px"> );
</span><span class="cx" style="display: block; padding: 0 10px"> } else {
</span></span></pre>
</div>
</div>
</body>
</html>