WordPress.org

Make WordPress Core

Ticket #19570: 19570.28.patch

File 19570.28.patch, 5.6 KB (added by ocean90, 8 years ago)
  • wp-admin/includes/post.php

     
    200200                update_post_meta( $post_ID, '_wp_format_url', wp_slash( esc_url_raw( wp_unslash( $post_data['_wp_format_url'] ) ) ) );
    201201        }
    202202
    203         $format_keys = array( 'quote', 'quote_source', 'image', 'gallery', 'audio', 'video' );
     203        $format_keys = array( 'quote', 'quote_source', 'image', 'image_id', 'gallery', 'audio', 'video' );
    204204
    205205        foreach ( $format_keys as $key ) {
    206206                if ( isset( $post_data[ '_wp_format_' . $key ] ) )
  • wp-admin/includes/post-formats.php

     
    1919        </div>
    2020
    2121        <?php
    22         $image = false;
    23         if ( ! empty( $format_meta['image'] ) && is_numeric( $format_meta['image'] ) ) {
    24                 $format_meta['image'] = absint( $format_meta['image'] );
    25                 $image = wp_get_attachment_url( $format_meta['image'] );
    26         }
     22        $show_image_preview = ! empty( $format_meta['image'] ) || ! empty( $format_meta['image_id'] );
    2723        ?>
    2824        <div class="field wp-format-image">
     25                <?php if ( $show_image_preview ): ?>
     26                <div id="image-preview" class="wp-format-media-preview">
     27                        <?php
     28                                if ( ! empty( $format_meta['image_id'] ) && is_numeric( $format_meta['image_id'] ) ) {
     29                                        $image = wp_get_attachment_url( absint( $format_meta['image_id'] ) );
     30                                        echo '<img src="' . esc_url( $image ) . '" />';
     31                                } elseif ( ! empty( $format_meta['image'] ) && ! preg_match( '#<[^>]+>#', $format_meta['image'] ) ) {
     32                                        echo $wp_embed->autoembed( $format_meta['image'] );
     33                                } elseif ( ! empty( $format_meta['image'] ) ) {
     34                                        echo $format_meta['image'];
     35                                }
     36                        ?>
     37                </div>
     38                <?php endif ?>
     39                <label for="_wp_format_image"><?php _e( 'Image embed code or URL' ); ?></label>
     40                <textarea id="wp_format_image" type="text" name="_wp_format_image" class="widefat"><?php esc_html_e( $format_meta['image'] ); ?></textarea>
    2941                <div data-format="image" class="wp-format-media-holder hide-if-no-js<?php if ( ! $image ) echo ' empty'; ?>">
    3042                        <a href="#" class="wp-format-media-select"
    3143                                data-choose="<?php esc_attr_e( 'Choose an Image' ); ?>"
    3244                                data-update="<?php esc_attr_e( 'Select Image' ); ?>">
    33                                 <?php
    34                                         if ( $image )
    35                                                 echo '<img src="' . esc_url( $image ) . '" />';
    36                                         else
    37                                                 _e( 'Select / Upload Image' );
    38                                 ?>
     45                                <?php _e( 'Select / Upload Image' ); ?>
    3946                        </a>
    4047                </div>
    41                 <label for="_wp_format_image" class="screen-reader-text"><?php _e( 'Attachment ID' ); ?></label>
    42                 <input id="wp_format_image" type="hidden" name="_wp_format_image" value="<?php echo esc_attr( $format_meta['image'] ); ?>" placeholder="<?php esc_attr_e( 'Attachment ID' ); ?>" class="widefat" />
     48                <label for="_wp_format_image_id" class="screen-reader-text"><?php _e( 'Attachment ID' ); ?></label>
     49                <input id="wp_format_image_id" type="hidden" name="_wp_format_image_id" value="<?php echo esc_attr( $format_meta['image_id'] ); ?>" placeholder="<?php esc_attr_e( 'Attachment ID' ); ?>" class="widefat" />
    4350        </div>
    4451
    4552        <div class="field wp-format-link wp-format-quote wp-format-image">
     
    113120                        </a>
    114121                </div>
    115122        </div>
    116 </div>
    117  No newline at end of file
     123</div>
  • wp-admin/js/post-formats.js

     
    112112
    113113                        mediaPreview = function (format, url, mime) {
    114114                                $('#' + format + '-preview').remove();
    115                                 $holder.parent().prepend( '<div id="' + format + '-preview" class="wp-format-media-preview">' +
     115
     116                                if ( -1 < $.inArray( format, [ 'audio', 'video'] ) ) {
     117                                        $holder.parent().prepend( '<div id="' + format + '-preview" class="wp-format-media-preview">' +
    116118                                        '<' + format + ' class="wp-' + format + '-shortcode" controls="controls" preload="none">' +
    117119                                                '<source type="' + mime + '" src="' + url + '" />' +
    118120                                        '</' + format + '></div>' );
    119                                 $('.wp-' + format + '-shortcode').mediaelementplayer();
     121                                        $('.wp-' + format + '-shortcode').mediaelementplayer();
     122                                } else {
     123                                        $holder.parent().prepend( '<div id="' + format + '-preview" class="wp-format-media-preview">' +
     124                                        '<img src="' + url + '" />' +
     125                                        '</div>' );
     126                                }
    120127                        };
    121128
    122                         // When an image is selected, run a callback.
     129                        // When an item is selected, run a callback.
    123130                        mediaFrame.on( 'select', function () {
    124131                                // Grab the selected attachment.
    125132                                var attachment = mediaFrame.state().get('selection').first(), mime, url, id;
     
    138145                                        mediaPreview('video', url, mime);
    139146                                } else {
    140147                                        // set the hidden input's value
    141                                         $field.val(id);
    142                                         // Show the image in the placeholder
    143                                         $el.html('<img src="' + url + '" />');
    144                                         $holder.removeClass('empty').show();
     148                                        $field.val(url);
     149                                        // We are saving the ID to make it easier
     150                                        $( '#wp_format_image_id' ).val(id);
     151                                        // show one preview at a time
     152                                        mediaPreview('image', url, mime);
    145153                                }
    146154                        });
    147155
  • wp-admin/css/wp-admin.css

     
    31793179        font-size: 1.2em;
    31803180}
    31813181
     3182.wp-format-image label,
    31823183.wp-format-video label,
    31833184.wp-format-audio label {
    31843185        float: left;
     
    32373238        margin: 5px 0;
    32383239}
    32393240
    3240 #wp_format_audio, #wp_format_video {
     3241#wp_format_image,
     3242#wp_format_audio,
     3243#wp_format_video {
    32413244        float: left;
    32423245        margin-right: 23px;
    32433246        max-width: 50%;