WordPress 4.4
[autoinstalls/wordpress.git] / wp-admin / custom-header.php
index e61feb781c3bdd7f3c452103443f44b0eaf14887..dfb90cb0be5d5b5f2fa28ad134cefc512b7c3986 100644 (file)
@@ -18,7 +18,7 @@ class Custom_Image_Header {
        /**
         * Callback for administration header.
         *
-        * @var callback
+        * @var callable
         * @since 2.1.0
         */
        public $admin_header_callback;
@@ -26,7 +26,7 @@ class Custom_Image_Header {
        /**
         * Callback for header div.
         *
-        * @var callback
+        * @var callable
         * @since 3.0.0
         */
        public $admin_image_div_callback;
@@ -41,6 +41,10 @@ class Custom_Image_Header {
        public $default_headers = array();
 
        /**
+        * Used to trigger a success message when settings updated and set to true.
+        *
+        * @since 3.0.0
+        * @access private
         * @var bool
         */
        private $updated;
@@ -49,8 +53,8 @@ class Custom_Image_Header {
         * Constructor - Register administration header callback.
         *
         * @since 2.1.0
-        * @param callback $admin_header_callback
-        * @param callback $admin_image_div_callback Optional custom image div output callback.
+        * @param callable $admin_header_callback
+        * @param callable $admin_image_div_callback Optional custom image div output callback.
         */
        public function __construct($admin_header_callback, $admin_image_div_callback = '') {
                $this->admin_header_callback = $admin_header_callback;
@@ -683,8 +687,13 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
         */
        public function step_2() {
                check_admin_referer('custom-header-upload', '_wpnonce-custom-header-upload');
-               if ( ! current_theme_supports( 'custom-header', 'uploads' ) )
-                       wp_die( __( 'Cheatin’ uh?' ), 403 );
+               if ( ! current_theme_supports( 'custom-header', 'uploads' ) ) {
+                       wp_die(
+                               '<h1>' . __( 'Cheatin&#8217; uh?' ) . '</h1>' .
+                               '<p>' . __( 'The current theme does not support uploading a custom header image.' ) . '</p>',
+                               403
+                       );
+               }
 
                if ( empty( $_POST ) && isset( $_GET['file'] ) ) {
                        $attachment_id = absint( $_GET['file'] );
@@ -762,7 +771,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
        <p class="hide-if-js"><strong><?php _e( 'You need JavaScript to choose a part of the image.'); ?></strong></p>
 
        <div id="crop_image" style="position: relative">
-               <img src="<?php echo esc_url( $url ); ?>" id="upload" width="<?php echo $width; ?>" height="<?php echo $height; ?>" />
+               <img src="<?php echo esc_url( $url ); ?>" id="upload" width="<?php echo $width; ?>" height="<?php echo $height; ?>" alt="" />
        </div>
 
        <input type="hidden" name="x1" id="x1" value="0"/>
@@ -830,15 +839,27 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
         * Display third step of custom header image page.
         *
         * @since 2.1.0
+        * @since 4.4.0 Switched to using wp_get_attachment_url() instead of the guid
+        *              for retrieving the header image URL.
         */
        public function step_3() {
                check_admin_referer( 'custom-header-crop-image' );
 
-               if ( ! current_theme_supports( 'custom-header', 'uploads' ) )
-                       wp_die( __( 'Cheatin&#8217; uh?' ), 403 );
+               if ( ! current_theme_supports( 'custom-header', 'uploads' ) ) {
+                       wp_die(
+                               '<h1>' . __( 'Cheatin&#8217; uh?' ) . '</h1>' .
+                               '<p>' . __( 'The current theme does not support uploading a custom header image.' ) . '</p>',
+                               403
+                       );
+               }
 
-               if ( ! empty( $_POST['skip-cropping'] ) && ! ( current_theme_supports( 'custom-header', 'flex-height' ) || current_theme_supports( 'custom-header', 'flex-width' ) ) )
-                       wp_die( __( 'Cheatin&#8217; uh?' ), 403 );
+               if ( ! empty( $_POST['skip-cropping'] ) && ! ( current_theme_supports( 'custom-header', 'flex-height' ) || current_theme_supports( 'custom-header', 'flex-width' ) ) ) {
+                       wp_die(
+                               '<h1>' . __( 'Cheatin&#8217; uh?' ) . '</h1>' .
+                               '<p>' . __( 'The current theme does not support a flexible sized header image.' ) . '</p>',
+                               403
+                       );
+               }
 
                if ( $_POST['oitar'] > 1 ) {
                        $_POST['x1'] = $_POST['x1'] * $_POST['oitar'];
@@ -878,7 +899,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
                // Update the attachment
                $attachment_id = $this->insert_attachment( $object, $cropped );
 
-               $url = $object['guid'];
+               $url = wp_get_attachment_url( $attachment_id );
                $this->set_header_image( compact( 'url', 'attachment_id', 'width', 'height' ) );
 
                // Cleanup.
@@ -1101,7 +1122,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
         */
        final public function create_attachment_object( $cropped, $parent_attachment_id ) {
                $parent = get_post( $parent_attachment_id );
-               $parent_url = $parent->guid;
+               $parent_url = wp_get_attachment_url( $parent->ID );
                $url = str_replace( basename( $parent_url ), basename( $cropped ), $parent_url );
 
                $size = @getimagesize( $cropped );
@@ -1110,7 +1131,6 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
                $object = array(
                        'ID' => $parent_attachment_id,
                        'post_title' => basename($cropped),
-                       'post_content' => $url,
                        'post_mime_type' => $image_type,
                        'guid' => $url,
                        'context' => 'custom-header'
@@ -1192,6 +1212,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
                $new_attachment_id = $this->insert_attachment( $object, $cropped );
 
                $object['attachment_id'] = $new_attachment_id;
+               $object['url']           = wp_get_attachment_url( $new_attachment_id );;
                $object['width']         = $dimensions['dst_width'];
                $object['height']        = $dimensions['dst_height'];