<!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>[50707] trunk/src/wp-admin/includes/class-custom-image-header.php: Coding Standards: Use strict comparison in `wp-admin/includes/class-custom-image-header.php`.</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/50707">50707</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/50707","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>SergeyBiryukov</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2021-04-13 19:03:07 +0000 (Tue, 13 Apr 2021)</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'>Coding Standards: Use strict comparison in `wp-admin/includes/class-custom-image-header.php`.

Includes minor code layout fixes for better readability.

See <a href="https://core.trac.wordpress.org/ticket/52627">#52627</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunksrcwpadminincludesclasscustomimageheaderphp">trunk/src/wp-admin/includes/class-custom-image-header.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunksrcwpadminincludesclasscustomimageheaderphp"></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-custom-image-header.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-admin/includes/class-custom-image-header.php 2021-04-13 17:59:45 UTC (rev 50706)
+++ trunk/src/wp-admin/includes/class-custom-image-header.php   2021-04-13 19:03:07 UTC (rev 50707)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -71,6 +71,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function init() {
</span><span class="cx" style="display: block; padding: 0 10px">                $page = add_theme_page( __( 'Header' ), __( 'Header' ), 'edit_theme_options', 'custom-header', array( $this, 'admin_page' ) );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                 if ( ! $page ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        return;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -80,6 +81,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                add_action( "admin_head-{$page}", array( $this, 'help' ) );
</span><span class="cx" style="display: block; padding: 0 10px">                add_action( "admin_head-{$page}", array( $this, 'take_action' ), 50 );
</span><span class="cx" style="display: block; padding: 0 10px">                add_action( "admin_head-{$page}", array( $this, 'js' ), 50 );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                 if ( $this->admin_header_callback ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        add_action( "admin_head-{$page}", $this->admin_header_callback, 51 );
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -141,7 +143,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 2.6.0
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @return int Current step
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @return int Current step.
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><span class="cx" style="display: block; padding: 0 10px">        public function step() {
</span><span class="cx" style="display: block; padding: 0 10px">                if ( ! isset( $_GET['step'] ) ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -150,8 +152,8 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $step = (int) $_GET['step'];
</span><span class="cx" style="display: block; padding: 0 10px">                if ( $step < 1 || 3 < $step ||
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        ( 2 == $step && ! wp_verify_nonce( $_REQUEST['_wpnonce-custom-header-upload'], 'custom-header-upload' ) ) ||
-                       ( 3 == $step && ! wp_verify_nonce( $_REQUEST['_wpnonce'], 'custom-header-crop-image' ) )
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 ( 2 === $step && ! wp_verify_nonce( $_REQUEST['_wpnonce-custom-header-upload'], 'custom-header-upload' ) ) ||
+                       ( 3 === $step && ! wp_verify_nonce( $_REQUEST['_wpnonce'], 'custom-header-crop-image' ) )
</ins><span class="cx" style="display: block; padding: 0 10px">                 ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        return 1;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -167,13 +169,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">        public function js_includes() {
</span><span class="cx" style="display: block; padding: 0 10px">                $step = $this->step();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ( ( 1 == $step || 3 == $step ) ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         if ( ( 1 === $step || 3 === $step ) ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                         wp_enqueue_media();
</span><span class="cx" style="display: block; padding: 0 10px">                        wp_enqueue_script( 'custom-header' );
</span><span class="cx" style="display: block; padding: 0 10px">                        if ( current_theme_supports( 'custom-header', 'header-text' ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                                wp_enqueue_script( 'wp-color-picker' );
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                } elseif ( 2 == $step ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         } elseif ( 2 === $step ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                         wp_enqueue_script( 'imgareaselect' );
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -186,9 +188,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">        public function css_includes() {
</span><span class="cx" style="display: block; padding: 0 10px">                $step = $this->step();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ( ( 1 == $step || 3 == $step ) && current_theme_supports( 'custom-header', 'header-text' ) ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         if ( ( 1 === $step || 3 === $step ) && current_theme_supports( 'custom-header', 'header-text' ) ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                         wp_enqueue_style( 'wp-color-picker' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                } elseif ( 2 == $step ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         } elseif ( 2 === $step ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                         wp_enqueue_style( 'imgareaselect' );
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -211,24 +213,32 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                if ( isset( $_POST['resetheader'] ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        check_admin_referer( 'custom-header-options', '_wpnonce-custom-header-options' );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                         $this->reset_header_image();
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                         return;
</span><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">                if ( isset( $_POST['removeheader'] ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        check_admin_referer( 'custom-header-options', '_wpnonce-custom-header-options' );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                         $this->remove_header_image();
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                         return;
</span><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">                if ( isset( $_POST['text-color'] ) && ! isset( $_POST['display-header-text'] ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        check_admin_referer( 'custom-header-options', '_wpnonce-custom-header-options' );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                         set_theme_mod( 'header_textcolor', 'blank' );
</span><span class="cx" style="display: block; padding: 0 10px">                } elseif ( isset( $_POST['text-color'] ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        check_admin_referer( 'custom-header-options', '_wpnonce-custom-header-options' );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                         $_POST['text-color'] = str_replace( '#', '', $_POST['text-color'] );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $color               = preg_replace( '/[^0-9a-fA-F]/', '', $_POST['text-color'] );
-                       if ( strlen( $color ) == 6 || strlen( $color ) == 3 ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+                       $color = preg_replace( '/[^0-9a-fA-F]/', '', $_POST['text-color'] );
+
+                       if ( strlen( $color ) === 6 || strlen( $color ) === 3 ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                                 set_theme_mod( 'header_textcolor', $color );
</span><span class="cx" style="display: block; padding: 0 10px">                        } elseif ( ! $color ) {
</span><span class="cx" style="display: block; padding: 0 10px">                                set_theme_mod( 'header_textcolor', 'blank' );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -237,7 +247,9 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                if ( isset( $_POST['default-header'] ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        check_admin_referer( 'custom-header-options', '_wpnonce-custom-header-options' );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                         $this->set_header_image( $_POST['default-header'] );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                         return;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -263,9 +275,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $this->default_headers    = $_wp_default_headers;
</span><span class="cx" style="display: block; padding: 0 10px">                $template_directory_uri   = get_template_directory_uri();
</span><span class="cx" style="display: block; padding: 0 10px">                $stylesheet_directory_uri = get_stylesheet_directory_uri();
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                 foreach ( array_keys( $this->default_headers ) as $header ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $this->default_headers[ $header ]['url']           = sprintf( $this->default_headers[ $header ]['url'], $template_directory_uri, $stylesheet_directory_uri );
-                       $this->default_headers[ $header ]['thumbnail_url'] = sprintf( $this->default_headers[ $header ]['thumbnail_url'], $template_directory_uri, $stylesheet_directory_uri );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 $this->default_headers[ $header ]['url'] = sprintf(
+                               $this->default_headers[ $header ]['url'],
+                               $template_directory_uri,
+                               $stylesheet_directory_uri
+                       );
+
+                       $this->default_headers[ $header ]['thumbnail_url'] = sprintf(
+                               $this->default_headers[ $header ]['thumbnail_url'],
+                               $template_directory_uri,
+                               $stylesheet_directory_uri
+                       );
</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"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -297,10 +319,12 @@
</span><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">                echo '<div class="available-headers">';
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                 foreach ( $headers as $header_key => $header ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        $header_thumbnail = $header['thumbnail_url'];
</span><span class="cx" style="display: block; padding: 0 10px">                        $header_url       = $header['url'];
</span><span class="cx" style="display: block; padding: 0 10px">                        $header_alt_text  = empty( $header['alt_text'] ) ? '' : $header['alt_text'];
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                         echo '<div class="default-header">';
</span><span class="cx" style="display: block; padding: 0 10px">                        echo '<label><input name="default-header" type="radio" value="' . esc_attr( $header_key ) . '" ' . checked( $header_url, get_theme_mod( 'header_image' ), false ) . ' />';
</span><span class="cx" style="display: block; padding: 0 10px">                        $width = '';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -310,6 +334,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        echo '<img src="' . set_url_scheme( $header_thumbnail ) . '" alt="' . esc_attr( $header_alt_text ) . '"' . $width . ' /></label>';
</span><span class="cx" style="display: block; padding: 0 10px">                        echo '</div>';
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                 echo '<div class="clear"></div></div>';
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -320,9 +345,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function js() {
</span><span class="cx" style="display: block; padding: 0 10px">                $step = $this->step();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ( ( 1 == $step || 3 == $step ) && current_theme_supports( 'custom-header', 'header-text' ) ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               if ( ( 1 === $step || 3 === $step ) && current_theme_supports( 'custom-header', 'header-text' ) ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                         $this->js_1();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                } elseif ( 2 == $step ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         } elseif ( 2 === $step ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                         $this->js_2();
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -430,7 +456,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        x2: xinit,
</span><span class="cx" style="display: block; padding: 0 10px">                        y2: yinit,
</span><span class="cx" style="display: block; padding: 0 10px">                        <?php
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        if ( ! current_theme_supports( 'custom-header', 'flex-height' ) && ! current_theme_supports( 'custom-header', 'flex-width' ) ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 if ( ! current_theme_supports( 'custom-header', 'flex-height' )
+                               && ! current_theme_supports( 'custom-header', 'flex-width' )
+                       ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                                 ?>
</span><span class="cx" style="display: block; padding: 0 10px">                        aspectRatio: xinit + ':' + yinit,
</span><span class="cx" style="display: block; padding: 0 10px">                                <?php
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -550,9 +578,15 @@
</span><span class="cx" style="display: block; padding: 0 10px"> <td>
</span><span class="cx" style="display: block; padding: 0 10px">        <p><?php _e( 'You can select an image to be shown at the top of your site by uploading from your computer or choosing from your media library. After selecting an image you will be able to crop it.' ); ?><br />
</span><span class="cx" style="display: block; padding: 0 10px">                        <?php
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        if ( ! current_theme_supports( 'custom-header', 'flex-height' ) && ! current_theme_supports( 'custom-header', 'flex-width' ) ) {
-                               /* translators: 1: Image width in pixels, 2: Image height in pixels. */
-                               printf( __( 'Images of exactly <strong>%1$d &times; %2$d pixels</strong> will be used as-is.' ) . '<br />', get_theme_support( 'custom-header', 'width' ), get_theme_support( 'custom-header', 'height' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 if ( ! current_theme_supports( 'custom-header', 'flex-height' )
+                               && ! current_theme_supports( 'custom-header', 'flex-width' )
+                       ) {
+                               printf(
+                                       /* translators: 1: Image width in pixels, 2: Image height in pixels. */
+                                       __( 'Images of exactly <strong>%1$d &times; %2$d pixels</strong> will be used as-is.' ) . '<br />',
+                                       get_theme_support( 'custom-header', 'width' ),
+                                       get_theme_support( 'custom-header', 'height' )
+                               );
</ins><span class="cx" style="display: block; padding: 0 10px">                         } elseif ( current_theme_supports( 'custom-header', 'flex-height' ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                                if ( ! current_theme_supports( 'custom-header', 'flex-width' ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                                        printf(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -578,7 +612,10 @@
</span><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">                        }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        if ( current_theme_supports( 'custom-header', 'flex-height' ) || current_theme_supports( 'custom-header', 'flex-width' ) ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+                       if ( current_theme_supports( 'custom-header', 'flex-height' )
+                               || current_theme_supports( 'custom-header', 'flex-width' )
+                       ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                                 if ( current_theme_supports( 'custom-header', 'width' ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                                        printf(
</span><span class="cx" style="display: block; padding: 0 10px">                                                /* translators: %s: Size in pixels. */
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -590,6 +627,7 @@
</span><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">                                }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                                 if ( current_theme_supports( 'custom-header', 'height' ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                                        printf(
</span><span class="cx" style="display: block; padding: 0 10px">                                                /* translators: %s: Size in pixels. */
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -683,8 +721,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        <?php
</span><span class="cx" style="display: block; padding: 0 10px">        endif;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $default_image = sprintf( get_theme_support( 'custom-header', 'default-image' ), get_template_directory_uri(), get_stylesheet_directory_uri() );
-               if ( $default_image && get_header_image() != $default_image ) :
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $default_image = sprintf(
+                       get_theme_support( 'custom-header', 'default-image' ),
+                       get_template_directory_uri(),
+                       get_stylesheet_directory_uri()
+               );
+
+               if ( $default_image && get_header_image() !== $default_image ) :
</ins><span class="cx" style="display: block; padding: 0 10px">                         ?>
</span><span class="cx" style="display: block; padding: 0 10px"> <tr>
</span><span class="cx" style="display: block; padding: 0 10px"> <th scope="row"><?php _e( 'Reset Image' ); ?></th>
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -770,6 +813,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function step_2() {
</span><span class="cx" style="display: block; padding: 0 10px">                check_admin_referer( 'custom-header-upload', '_wpnonce-custom-header-upload' );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                 if ( ! current_theme_supports( 'custom-header', 'uploads' ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        wp_die(
</span><span class="cx" style="display: block; padding: 0 10px">                                '<h1>' . __( 'Something went wrong.' ) . '</h1>' .
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -794,12 +838,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        list( $width, $height, $type, $attr ) = wp_getimagesize( $file );
</span><span class="cx" style="display: block; padding: 0 10px">                } else {
</span><span class="cx" style="display: block; padding: 0 10px">                        $data   = wp_get_attachment_metadata( $attachment_id );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $height = isset( $data['height'] ) ? $data['height'] : 0;
-                       $width  = isset( $data['width'] ) ? $data['width'] : 0;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 $height = isset( $data['height'] ) ? (int) $data['height'] : 0;
+                       $width  = isset( $data['width'] ) ? (int) $data['width'] : 0;
</ins><span class="cx" style="display: block; padding: 0 10px">                         unset( $data );
</span><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">                $max_width = 0;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                 // For flex, limit size of image displayed to 1500px unless theme says otherwise.
</span><span class="cx" style="display: block; padding: 0 10px">                if ( current_theme_supports( 'custom-header', 'flex-width' ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        $max_width = 1500;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -808,11 +853,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">                if ( current_theme_supports( 'custom-header', 'max-width' ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        $max_width = max( $max_width, get_theme_support( 'custom-header', 'max-width' ) );
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                 $max_width = max( $max_width, get_theme_support( 'custom-header', 'width' ) );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // If flexible height isn't supported and the image is the exact right size.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ( ! current_theme_supports( 'custom-header', 'flex-height' ) && ! current_theme_supports( 'custom-header', 'flex-width' )
-                       && get_theme_support( 'custom-header', 'width' ) == $width && get_theme_support( 'custom-header', 'height' ) == $height ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         if ( ! current_theme_supports( 'custom-header', 'flex-height' )
+                       && ! current_theme_supports( 'custom-header', 'flex-width' )
+                       && (int) get_theme_support( 'custom-header', 'width' ) === $width
+                       && (int) get_theme_support( 'custom-header', 'height' ) === $height
+               ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                         // Add the metadata.
</span><span class="cx" style="display: block; padding: 0 10px">                        if ( file_exists( $file ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                                wp_update_attachment_metadata( $attachment_id, wp_generate_attachment_metadata( $attachment_id, $file ) );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -833,7 +882,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->finished();
</span><span class="cx" style="display: block; padding: 0 10px">                } elseif ( $width > $max_width ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        $oitar = $width / $max_width;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $image = wp_crop_image( $attachment_id, 0, 0, $width, $height, $max_width, $height / $oitar, false, str_replace( wp_basename( $file ), 'midsize-' . wp_basename( $file ), $file ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+                       $image = wp_crop_image(
+                               $attachment_id,
+                               0,
+                               0,
+                               $width,
+                               $height,
+                               $max_width,
+                               $height / $oitar,
+                               false,
+                               str_replace( wp_basename( $file ), 'midsize-' . wp_basename( $file ), $file )
+                       );
+
</ins><span class="cx" style="display: block; padding: 0 10px">                         if ( ! $image || is_wp_error( $image ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                                wp_die( __( 'Image could not be processed. Please go back and try again.' ), __( 'Image Processing Error' ) );
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -874,7 +935,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">        <p class="submit">
</span><span class="cx" style="display: block; padding: 0 10px">                <?php submit_button( __( 'Crop and Publish' ), 'primary', 'submit', false ); ?>
</span><span class="cx" style="display: block; padding: 0 10px">                <?php
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ( isset( $oitar ) && 1 == $oitar && ( current_theme_supports( 'custom-header', 'flex-height' ) || current_theme_supports( 'custom-header', 'flex-width' ) ) ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         if ( isset( $oitar ) && 1 === $oitar
+                       && ( current_theme_supports( 'custom-header', 'flex-height' )
+                               || current_theme_supports( 'custom-header', 'flex-width' ) )
+               ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                         submit_button( __( 'Skip Cropping, Publish Image as Is' ), '', 'skip-cropping', false );
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">                ?>
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -895,6 +959,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $uploaded_file = $_FILES['import'];
</span><span class="cx" style="display: block; padding: 0 10px">                $wp_filetype   = wp_check_filetype_and_ext( $uploaded_file['tmp_name'], $uploaded_file['name'] );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                 if ( ! wp_match_mime_types( 'image', $wp_filetype['type'] ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        wp_die( __( 'The uploaded file is not a valid image. Please try again.' ) );
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -921,6 +986,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Save the data.
</span><span class="cx" style="display: block; padding: 0 10px">                $attachment_id = wp_insert_attachment( $object, $file );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                 return compact( 'attachment_id', 'file', 'filename', 'url', 'type' );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -942,7 +1008,10 @@
</span><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"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ( ! empty( $_POST['skip-cropping'] ) && ! ( current_theme_supports( 'custom-header', 'flex-height' ) || current_theme_supports( 'custom-header', 'flex-width' ) ) ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         if ( ! empty( $_POST['skip-cropping'] )
+                       && ! current_theme_supports( 'custom-header', 'flex-height' )
+                       && ! current_theme_supports( 'custom-header', 'flex-width' )
+               ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                         wp_die(
</span><span class="cx" style="display: block; padding: 0 10px">                                '<h1>' . __( 'Something went wrong.' ) . '</h1>' .
</span><span class="cx" style="display: block; padding: 0 10px">                                '<p>' . __( 'The current theme does not support a flexible sized header image.' ) . '</p>',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -970,7 +1039,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $width      = $dimensions['dst_width'];
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                if ( empty( $_POST['skip-cropping'] ) ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $cropped = wp_crop_image( $attachment_id, (int) $_POST['x1'], (int) $_POST['y1'], (int) $_POST['width'], (int) $_POST['height'], $width, $height );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 $cropped = wp_crop_image(
+                               $attachment_id,
+                               (int) $_POST['x1'],
+                               (int) $_POST['y1'],
+                               (int) $_POST['width'],
+                               (int) $_POST['height'],
+                               $width,
+                               $height
+                       );
</ins><span class="cx" style="display: block; padding: 0 10px">                 } elseif ( ! empty( $_POST['create-new-attachment'] ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        $cropped = _copy_image_file( $attachment_id );
</span><span class="cx" style="display: block; padding: 0 10px">                } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1028,10 +1105,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                if ( ! current_user_can( 'edit_theme_options' ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        wp_die( __( 'Sorry, you are not allowed to customize headers.' ) );
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                 $step = $this->step();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ( 2 == $step ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               if ( 2 === $step ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                         $this->step_2();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                } elseif ( 3 == $step ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         } elseif ( 3 === $step ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                         $this->step_3();
</span><span class="cx" style="display: block; padding: 0 10px">                } else {
</span><span class="cx" style="display: block; padding: 0 10px">                        $this->step_1();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1077,6 +1156,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        final public function set_header_image( $choice ) {
</span><span class="cx" style="display: block; padding: 0 10px">                if ( is_array( $choice ) || is_object( $choice ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        $choice = (array) $choice;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                         if ( ! isset( $choice['attachment_id'] ) || ! isset( $choice['url'] ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                                return;
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1092,8 +1172,10 @@
</span><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">                        update_post_meta( $choice['attachment_id'], '_wp_attachment_is_custom_header', get_stylesheet() );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                         set_theme_mod( 'header_image', $choice['url'] );
</span><span class="cx" style="display: block; padding: 0 10px">                        set_theme_mod( 'header_image_data', $header_image_data );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                         return;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1100,13 +1182,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">                if ( in_array( $choice, array( 'remove-header', 'random-default-image', 'random-uploaded-image' ), true ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        set_theme_mod( 'header_image', $choice );
</span><span class="cx" style="display: block; padding: 0 10px">                        remove_theme_mod( 'header_image_data' );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                         return;
</span><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">                $uploaded = get_uploaded_header_images();
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                 if ( $uploaded && isset( $uploaded[ $choice ] ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        $header_image_data = $uploaded[ $choice ];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-
</del><span class="cx" style="display: block; padding: 0 10px">                 } else {
</span><span class="cx" style="display: block; padding: 0 10px">                        $this->process_default_headers();
</span><span class="cx" style="display: block; padding: 0 10px">                        if ( isset( $this->default_headers[ $choice ] ) ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1144,11 +1227,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        $this->remove_header_image();
</span><span class="cx" style="display: block; padding: 0 10px">                        return;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                 $default = sprintf( $default, get_template_directory_uri(), get_stylesheet_directory_uri() );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $default_data = array();
</span><span class="cx" style="display: block; padding: 0 10px">                foreach ( $this->default_headers as $header => $details ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        if ( $details['url'] == $default ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 if ( $details['url'] === $default ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                                 $default_data = $details;
</span><span class="cx" style="display: block; padding: 0 10px">                                break;
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1407,9 +1491,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">        public function customize_set_last_used( $wp_customize ) {
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $header_image_data_setting = $wp_customize->get_setting( 'header_image_data' );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                 if ( ! $header_image_data_setting ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        return;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                 $data = $header_image_data_setting->post_value();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                if ( ! isset( $data['attachment_id'] ) ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1438,7 +1524,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->default_headers;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $default             = sprintf( $default, get_template_directory_uri(), get_stylesheet_directory_uri() );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $default = sprintf( $default, get_template_directory_uri(), get_stylesheet_directory_uri() );
+
</ins><span class="cx" style="display: block; padding: 0 10px">                 $already_has_default = false;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                foreach ( $this->default_headers as $k => $h ) {
</span></span></pre>
</div>
</div>

</body>
</html>