Make WordPress Core

Changeset 23843


Ignore:
Timestamp:
03/29/2013 03:35:41 AM (12 years ago)
Author:
markjaquith
Message:

Post Format UI.

  • Icons
  • Selection
  • Prompt text
  • Special fields
  • Styling
  • Sparkles

This is going to need testing, polish, and love.

see #19570. props melchoyce, helen, wonderboymusic, lessbloat, rachelbaker, aaroncampbell, DrewAPicture, ryelle.

Location:
trunk
Files:
2 added
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/css/wp-admin-rtl.css

    r23810 r23843  
    2424    11.2 - Post Revisions
    2525    11.3 - Featured Images
     26    11.4 - Post Format Selection
    262712.0 - Categories
    272813.0 - Tags
     
    965966#select-featured-image a {
    966967    float: right;
     968}
     969
     970/*------------------------------------------------------------------------------
     971  11.4 - Post format selection
     972------------------------------------------------------------------------------*/
     973
     974.post-format-options a {
     975    border-left: 1px solid #ebebeb;
     976    border-right: none;
     977}
     978
     979.post-format-options a:first-child {
     980    -webkit-border-bottom-left-radius: 0;
     981    -webkit-border-top-left-radius: 0;
     982    border-bottom-left-radius: 0;
     983    border-top-left-radius: 0;
     984}
     985
     986.post-format-options a:last-child {
     987    -webkit-border-bottom-right-radius: 3px;
     988    -webkit-border-top-right-radius: 3px;
     989    border-bottom-right-radius: 3px;
     990    border-top-right-radius: 3px;
     991}
     992
     993.post-format-tip {
     994    float: left;
    967995}
    968996
  • trunk/wp-admin/css/wp-admin.css

    r23810 r23843  
    2525    11.2 - Post Revisions
    2626    11.3 - Featured Images
     27    11.4 - Post Format Selection
    272812.0 - Categories
    282913.0 - Tags
     
    31513152}
    31523153
     3154.wp-format-gallery .post-formats-fields,
     3155.wp-format-image .post-formats-fields,
    31533156.wp-format-link .post-formats-fields,
    31543157.wp-format-quote .post-formats-fields,
    31553158.wp-format-video .post-formats-fields,
    31563159.wp-format-audio .post-formats-fields,
     3160.wp-format-gallery .field.wp-format-gallery,
     3161.wp-format-image .field.wp-format-image,
    31573162.wp-format-chat .field.wp-format-chat,
    31583163.wp-format-link .field.wp-format-link,
     
    31663171    display: none;
    31673172    margin-bottom: 10px;
     3173    overflow: hidden;
    31683174}
    31693175
     
    31723178    padding: 5px;
    31733179    font-size: 1.2em;
     3180}
     3181
     3182.wp-format-media-holder {
     3183    float: left;
     3184    overflow: hidden;
     3185    width: 40%;
     3186    height: 200px;
     3187    border: 1px dashed #dfdfdf;
     3188    background: #f5f5f5 url(../images/media-button-2x.png) no-repeat 50% 25%;
     3189}
     3190
     3191.wp-format-media-holder.empty {
     3192    height: auto;
     3193    padding: 55px 0 20px;
     3194}
     3195
     3196.wp-format-media-holder:hover {
     3197    background-color: #eee;
     3198}
     3199
     3200.wp-format-media-preview {
     3201    margin-bottom: 20px;
     3202}
     3203
     3204.mejs-audio audio,
     3205.mejs-video video {
     3206    display: block;
     3207}
     3208
     3209.wp-format-media-select {
     3210    display: block;
     3211    height: 200px;
     3212    text-align: center;
     3213}
     3214
     3215.wp-format-media-select img {
     3216    max-width: 100%;
     3217    max-height: 100%;
     3218}
     3219
     3220.empty .wp-format-media-select {
     3221    height: 20px;
     3222}
     3223
     3224.empty .wp-format-media-metaedit {
     3225    height: 20px;
     3226    display: block;
     3227    text-align: center;
     3228}
     3229
     3230.edit-format-preview {
     3231    display: block;
     3232    margin: 5px 0;
     3233}
     3234
     3235#wp_format_audio, #wp_format_video {
     3236    float: left;
     3237    margin-right: 23px;
     3238    max-width: 50%;
     3239    min-height: 97px;
    31743240}
    31753241
     
    40644130.no-js #select-featured-image .choose {
    40654131    display: none;
     4132}
     4133
     4134/*------------------------------------------------------------------------------
     4135  11.4 - Post format selection
     4136------------------------------------------------------------------------------*/
     4137
     4138#icon-edit.standard {
     4139    background: url(../images/post-formats32.png) no-repeat -3px -4px;
     4140}
     4141
     4142#icon-edit.image {
     4143    background: url(../images/post-formats32.png) no-repeat  -43px -4px;
     4144}
     4145
     4146#icon-edit.gallery {
     4147    background: url(../images/post-formats32.png) no-repeat -83px -4px;
     4148}
     4149
     4150#icon-edit.audio {
     4151    background: url(../images/post-formats32.png) no-repeat -123px -4px;
     4152}
     4153
     4154#icon-edit.video {
     4155    background: url(../images/post-formats32.png) no-repeat -163px -4px;
     4156}
     4157
     4158#icon-edit.chat {
     4159    background: url(../images/post-formats32.png) no-repeat -202px -4px;
     4160}
     4161
     4162#icon-edit.status {
     4163    background: url(../images/post-formats32.png) no-repeat -242px -4px;
     4164}
     4165
     4166#icon-edit.aside {
     4167    background: url(../images/post-formats32.png) no-repeat -282px -4px;
     4168}
     4169
     4170#icon-edit.quote {
     4171    background: url(../images/post-formats32.png) no-repeat -322px -4px;
     4172}
     4173
     4174#icon-edit.link {
     4175    background: url(../images/post-formats32.png) no-repeat -362px -4px;
     4176}
     4177
     4178.post-format-description {
     4179    color: #666;
     4180    display: none;
     4181    margin: 10px 0;
     4182}
     4183
     4184.post-format-options {
     4185    height: 29px;
     4186    background: #f9f9f9;
     4187    border: 1px solid #dfdfdf;
     4188    -webkit-border-radius: 3px;
     4189    border-radius: 3px;
     4190    margin: 0 0 9px 1px;
     4191    padding: 0;
     4192}
     4193
     4194.post-format-options a {
     4195    border-right: 1px solid #ebebeb;
     4196    display: inline-block;
     4197    height: 16px;
     4198    width: 16px;
     4199    padding: 6px;
     4200    position: relative;
     4201    text-decoration: none;
     4202}
     4203
     4204.post-format-options a:first-child {
     4205    -webkit-border-bottom-left-radius: 3px;
     4206    -webkit-border-top-left-radius: 3px;
     4207    border-bottom-left-radius: 3px;
     4208    border-top-left-radius: 3px;
     4209}
     4210
     4211.post-format-options a.active,
     4212.post-format-options a:focus,
     4213.post-format-options a:hover {
     4214    background: #fff;
     4215    outline: none;
     4216    opacity: 1;
     4217}
     4218
     4219.post-format-options a div {
     4220    height: 16px;
     4221    width: 16px;
     4222    opacity: 0.4;
     4223}
     4224
     4225.post-format-options a.active div,
     4226.post-format-options a:focus div,
     4227.post-format-options a:hover div {
     4228    opacity: 1;
     4229}
     4230
     4231.post-format-options .standard {
     4232    background: url(../images/post-formats.png) no-repeat -8px -8px;
     4233}
     4234
     4235.post-format-options .image {
     4236    background: url(../images/post-formats.png) no-repeat -40px -8px;
     4237}
     4238
     4239.post-format-options .gallery {
     4240    background: url(../images/post-formats.png) no-repeat -72px -8px;
     4241}
     4242
     4243.post-format-options .audio {
     4244    background: url(../images/post-formats.png) no-repeat -104px -8px;
     4245}
     4246
     4247.post-format-options .video {
     4248    background: url(../images/post-formats.png) no-repeat -136px -8px;
     4249}
     4250
     4251.post-format-options .chat {
     4252    background: url(../images/post-formats.png) no-repeat -168px -8px;
     4253}
     4254
     4255.post-format-options .status {
     4256    background: url(../images/post-formats.png) no-repeat -200px -8px;
     4257}
     4258
     4259.post-format-options .aside {
     4260    background: url(../images/post-formats.png) no-repeat -232px -8px;
     4261}
     4262
     4263.post-format-options .quote {
     4264    background: url(../images/post-formats.png) no-repeat -264px -8px;
     4265}
     4266
     4267.post-format-options .link {
     4268    background: url(../images/post-formats.png) no-repeat -296px -8px;
     4269}
     4270
     4271.post-format-tip {
     4272    color: #999;
     4273    font-size: 14px;
     4274    float: right;
     4275    padding: 6px 10px;
     4276    text-transform: capitalize;
    40664277}
    40674278
  • trunk/wp-admin/edit-form-advanced.php

    r23766 r23843  
    131131if ( post_type_supports( $post_type, 'post-formats' ) ) {
    132132    wp_enqueue_script( 'post-formats' );
     133    wp_enqueue_script( 'wp-mediaelement' );
     134    wp_enqueue_style( 'wp-mediaelement' );
    133135    $post_format = get_post_format();
    134136
     
    138140    $format_class = " class='wp-format-{$post_format}'";
    139141}
     142
     143if ( post_type_supports( $post_type, 'post-formats' ) ) {
     144    $all_post_formats = array(
     145        'standard' => array (
     146            'description' => __( 'Add a title and use the editor to compose your post.' )
     147        ),
     148        'image' => array (
     149            'description' => __( 'Select or upload an image to use for your post.' )
     150        ),
     151        'gallery' => array (
     152            'description' => __( 'Use the Add Media button to select or upload images for your gallery.' )
     153        ),
     154        'link' => array (
     155            'description' => __( 'Add a link URL below.' )
     156        ),
     157        'video' => array (
     158            'description' => __( 'Paste a video embed into the box, upload a video file, or choose one from your Media Library.' )
     159        ),
     160        'audio' => array (
     161            'description' => __( 'Paste an audio embed into the box, upload an audio file, or choose one from your Media Library.' )
     162        ),
     163        'chat' => array (
     164            'description' => __( 'Copy a chat or Q&A transcript into the editor.' )
     165        ),
     166        'status' => array (
     167            'description' => __( 'Use the editor to compose a status update. What’s new?' )
     168        ),
     169        'quote' => array (
     170            'description' => __( 'Copy a quotation into the box. Also add the source and URL if you have them.' )
     171        ),
     172        'aside' => array (
     173            'description' => __( 'An aside is a quick thought or side topic. Use the editor to compose one.' )
     174        )
     175    );
     176    $post_format_options = '';
     177
     178    foreach ( $all_post_formats as $slug => $attr ) {
     179        $class = '';
     180        if ( $post_format == $slug ) {
     181            $class = 'class="active"';
     182            $active_post_type_slug = $slug;
     183            $active_post_type_label = ucfirst( $slug );
     184            $active_post_format_description = $attr['description'];
     185        }
     186
     187        $post_format_options .= '<a ' . $class . ' href="?format=' . $slug . '" data-description="' . $attr['description'] . '" data-wp-format="' . $slug . '" title="' . ucfirst( sprintf( __( '%s Post' ), $slug ) ) . '"><div class="' . $slug . '"></div></a>';
     188    }
     189}
     190
     191$current_post_format = array( 'currentPostFormat' => esc_html( $active_post_type_slug ) );
     192wp_localize_script( 'post', 'postFormats', $current_post_format );
    140193
    141194if ( post_type_supports($post_type, 'page-attributes') )
     
    338391
    339392<div id="poststuff">
    340 
    341 <?php
    342 if ( post_type_supports( $post_type, 'post-formats' ) ) {
    343     $all_post_formats = get_post_format_strings();
    344 
    345     echo '<h2 class="nav-tab-wrapper post-format-select">';
    346 
    347     foreach ( $all_post_formats as $slug => $label ) {
    348         if ( $post_format == $slug )
    349             $class = 'nav-tab nav-tab-active';
    350         else
    351             $class = 'nav-tab';
    352 
    353         echo '<a class="' . $class . '" href="?format=' . $slug . '" data-wp-format="' . $slug . '">' . $label . '</a>';
    354     }
    355 
    356     echo '</h2>';
    357 }
    358 ?>
    359 
    360393<div id="post-body" class="metabox-holder columns-<?php echo 1 == get_current_screen()->get_columns() ? '1' : '2'; ?>">
    361394<div id="post-body-content"<?php echo $format_class; ?>>
     395
     396<?php if ( ! empty( $post_format_options ) ) : ?>
     397<div class="post-format-options">
     398    <span class="post-format-tip">Standard Post</span>
     399    <?php echo $post_format_options; ?>
     400</div>
     401<?php endif; ?>
    362402
    363403<?php if ( post_type_supports($post_type, 'title') ) { ?>
     
    374414    $sample_permalink_html .= '<input id="shortlink" type="hidden" value="' . esc_attr($shortlink) . '" /><a href="#" class="button button-small" onclick="prompt(&#39;URL:&#39;, jQuery(\'#shortlink\').val()); return false;">' . __('Get Shortlink') . '</a>';
    375415
    376 if ( $post_type_object->public && ! ( 'pending' == get_post_status( $post ) && !current_user_can( $post_type_object->cap->publish_posts ) ) ) { ?>
    377     <div id="edit-slug-box" class="hide-if-no-js">
     416if ( $post_type_object->public && ! ( 'pending' == get_post_status( $post ) && !current_user_can( $post_type_object->cap->publish_posts ) ) ) {
     417    $has_sample_permalink = $sample_permalink_html && 'auto-draft' != $post->post_status;
     418?>
     419    <div id="edit-slug-box" class="hide-if-no-js<?php if ( ! $has_sample_permalink ) echo ' hidden' ?>">
    378420    <?php
    379         if ( $sample_permalink_html && 'auto-draft' != $post->post_status )
     421        if ( $has_sample_permalink )
    380422            echo $sample_permalink_html;
    381423    ?>
     
    399441
    400442// post format fields
    401 if ( post_type_supports( $post_type, 'post-formats' ) ) {
    402     $format_meta = get_post_format_meta( $post_ID );
    403 ?>
    404 <div class="post-formats-fields edit-form-section">
    405 
    406 <input type="hidden" name="post_format" id="post_format" value="<?php echo esc_attr( $post_format ); ?>" />
    407 
    408 <div class="field wp-format-quote">
    409     <label for="_wp_format_quote" class="screen-reader-text"><?php _e( 'Quote' ); ?>:</label>
    410     <textarea name="_wp_format_quote" placeholder="<?php esc_attr_e( 'Quote' ); ?>" class="widefat"><?php echo esc_textarea( $format_meta['quote'] ); ?></textarea>
    411 </div>
    412 
    413 <div class="field wp-format-quote">
    414     <label for="_wp_format_quote_source" class="screen-reader-text"><?php _e( 'Quote source' ); ?>:</label>
    415     <input type="text" name="_wp_format_quote_source" value="<?php echo esc_attr( $format_meta['quote_source'] ); ?>" placeholder="<?php esc_attr_e( 'Quote source' ); ?>" class="widefat" />
    416 </div>
    417 
    418 <div class="field wp-format-link wp-format-quote">
    419     <label for="_wp_format_url" class="screen-reader-text"><?php _e( 'Link URL' ); ?>:</label>
    420     <input type="text" name="_wp_format_url" value="<?php echo esc_url( $format_meta['url'] ); ?>" placeholder="<?php esc_attr_e( 'Link URL' ); ?>" class="widefat" />
    421 </div>
    422 
    423 <div class="field wp-format-audio wp-format-video">
    424     <label for="_wp_format_media" class="screen-reader-text"><?php _e( 'Embed code or URL' ); ?>:</label>
    425     <textarea name="_wp_format_media" placeholder="<?php esc_attr_e( 'Embed code or URL' ); ?>" class="widefat"><?php echo esc_textarea( $format_meta['media'] ); ?></textarea>
    426 </div>
    427 
    428 </div>
    429 <?php
    430 }
     443if ( post_type_supports( $post_type, 'post-formats' ) )
     444    require_once( './includes/post-formats.php' );
    431445
    432446if ( post_type_supports($post_type, 'editor') ) {
  • trunk/wp-admin/includes/post.php

    r23763 r23843  
    201201    }
    202202
    203     $format_keys = array( 'quote', 'quote_source', 'image', 'gallery', 'media' );
     203    $format_keys = array( 'quote', 'quote_source', 'image', 'gallery', 'image', 'gallery', 'audio', 'video' );
    204204
    205205    foreach ( $format_keys as $key ) {
  • trunk/wp-admin/includes/screen.php

    r23658 r23843  
    143143 * @since 3.2.0
    144144 *
     145 * @global $post_ID
    145146 * @param string|WP_Screen $screen Optional. Accepts a screen object (and defaults to the current screen object)
    146147 *  which it uses to determine an icon HTML ID. Or, if a string is provided, it is used to form the icon HTML ID.
     
    148149 */
    149150function get_screen_icon( $screen = '' ) {
     151    global $post_ID;
    150152    if ( empty( $screen ) )
    151153        $screen = get_current_screen();
     
    166168        if ( $screen->post_type )
    167169            $class .= ' ' . sanitize_html_class( 'icon32-posts-' . $screen->post_type );
     170
     171        if ( $post_ID ) {
     172            $format = get_post_format( $post_ID );
     173            if ( $format )
     174                $class .= ' ' . $format;
     175        }
    168176    }
    169177
  • trunk/wp-admin/js/post-formats.js

    r23753 r23843  
    1 (function($){
     1window.wp = window.wp || {};
     2
     3(function($) {
     4    var mediaFrame, lastMimeType, lastMenu, mediaPreview;
    25
    36    // Post formats selection
    4     $('.post-format-select a').on( 'click.post-format', function(e) {
    5         var $this = $(this),
    6             editor,
    7             body,
     7    $('.post-format-options a').on( 'click', function(e){
     8        var $this = $(this), editor, body,
     9            parent = $this.parent(),
    810            format = $this.data('wp-format'),
    9             container = $('#post-body-content');
     11            container = $('#post-body-content'),
     12            description = $('.post-format-description');
    1013
    11         $('.post-format-select a.nav-tab-active').removeClass('nav-tab-active');
    12         $this.addClass('nav-tab-active').blur();
     14        parent.find('a.active').removeClass('active');
     15        $this.addClass('active');
     16        $('#icon-edit').removeClass(postFormats.currentPostFormat).addClass(format);
    1317        $('#post_format').val(format);
    1418
    1519        container.get(0).className = container.get(0).className.replace( /\bwp-format-[^ ]+/, '' );
    1620        container.addClass('wp-format-' + format);
     21        $('#title').focus();
     22
     23        // Update description line
     24        description.html($this.data('description'));
     25
     26        if (description.not(':visible'))
     27            description.slideDown('fast');
    1728
    1829        if ( typeof tinymce != 'undefined' ) {
     
    2637        }
    2738
     39        postFormats.currentPostFormat = format;
     40
    2841        e.preventDefault();
     42    }).on('mouseenter focusin', function () {
     43        $('.post-format-tip').html( $(this).prop('title') );
     44    }).on('mouseleave focusout', function () {
     45        $('.post-format-tip').html( $('.post-format-options a.active').prop('title') );
    2946    });
    3047
     48    // Media selection
     49    $('.wp-format-media-select').click(function (event) {
     50        event.preventDefault();
     51        var $el = $(this), $holder, $field, mime = 'image', menu = '',
     52            $holder = $el.closest('.wp-format-media-holder'),
     53            $field = $( '#wp_format_' + $holder.data('format') );
     54
     55        switch ( $holder.data('format') ) {
     56            case 'audio':
     57                mime = 'audio';
     58                break;
     59            case 'video':
     60                mime = 'video';
     61                break;
     62        }
     63
     64        // If the media frame already exists, reopen it.
     65        if ( mediaFrame && lastMimeType === mime && lastMenu === menu ) {
     66            mediaFrame.open();
     67            return;
     68        }
     69
     70        lastMimeType = mime;
     71        lastMenu = menu;
     72
     73        // Create the media frame.
     74        mediaFrame = wp.media.frames.formatMedia = wp.media({
     75            // Set the title of the modal.
     76            title: $el.data('choose'),
     77
     78            // Set the menu sidebar of the modal, if applicable
     79            toolbar: menu,
     80
     81            // Tell the modal to show only items matching the current mime type.
     82            library: {
     83                type: mime
     84            },
     85
     86            // Customize the submit button.
     87            button: {
     88                // Set the text of the button.
     89                text: $el.data('update')
     90            }
     91        });
     92
     93        mediaPreview = function (format, url, mime) {
     94            $('#' + format + '-preview').remove();
     95            $holder.parent().prepend( '<div id="' + format + '-preview" class="wp-format-media-preview">' +
     96                '<' + format + ' class="wp-' + format + '-shortcode" controls="controls" preload="none">' +
     97                    '<source type="' + mime + '" src="' + url + '" />' +
     98                '</' + format + '></div>' );
     99            $('.wp-' + format + '-shortcode').mediaelementplayer();
     100        };
     101
     102        // When an image is selected, run a callback.
     103        mediaFrame.on( 'select', function () {
     104            // Grab the selected attachment.
     105            var attachment = mediaFrame.state().get('selection').first(), mime, url, id;
     106
     107            id = attachment.get('id');
     108            url = attachment.get('url');
     109            mime = attachment.get('mime');
     110
     111            if ( 0 === mime.indexOf('audio') ) {
     112                $field.val(url);
     113                // show one preview at a time
     114                mediaPreview('audio', url, mime);
     115            } else if ( 0 === mime.indexOf('video') ) {
     116                $field.val(url);
     117                // show one preview at a time
     118                mediaPreview('video', url, mime);
     119            } else {
     120                // set the hidden input's value
     121                $field.val(url);
     122                // Show the image in the placeholder
     123                $el.html('<img src="' + url + '" />');
     124                $holder.removeClass('empty').show();
     125            }
     126        });
     127
     128        mediaFrame.open();
     129    });
    31130})(jQuery);
  • trunk/wp-admin/js/post.js

    r23763 r23843  
    642642                    samplepermalinknonce: $('#samplepermalinknonce').val()
    643643                }, function(data) {
    644                     $('#edit-slug-box').html(data);
     644                    var box = $('#edit-slug-box');
     645                    box.html(data);
     646                    if (box.hasClass('hidden')) {
     647                        box.fadeIn('fast', function () {
     648                            box.removeClass('hidden');
     649                        });
     650                    }
    645651                    b.html(revert_b);
    646652                    real_slug.val(new_slug);
  • trunk/wp-includes/js/autosave.js

    r23796 r23843  
    200200            function(data) {
    201201                if ( data !== '-1' ) {
    202                     jQuery('#edit-slug-box').html(data);
     202                    var box = jQuery('#edit-slug-box');
     203                    box.html(data);
     204                    if (box.hasClass('hidden')) {
     205                        box.fadeIn('fast', function () {
     206                            box.removeClass('hidden');
     207                        });
     208                    }
    203209                    makeSlugeditClickable();
    204210                }
  • trunk/wp-includes/media.php

    r23840 r23843  
    20442044    if ( has_post_format( $type ) ) {
    20452045        $meta = get_post_format_meta( $post->ID );
    2046         if ( ! empty( $meta['media'] ) ) {
    2047             if ( is_numeric( $meta['media'] ) ) {
    2048                 $url = wp_get_attachment_url( $meta['media'] );
     2046        if ( ! empty( $meta[$type] ) ) {
     2047            if ( is_integer( $meta[$type] ) ) {
     2048                $url = wp_get_attachment_url( $meta[$type] );
    20492049                $shortcode = sprintf( '[%s src="%s"]', $type, $url );
    2050             } elseif ( preg_match( '/' . get_shortcode_regex() . '/s', $meta['media'] ) ) {
    2051                 $shortcode = $meta['media'];
    2052             } elseif ( preg_match( '#<[^>]+>#', $meta['media'] ) ) {
    2053                 $post->format_content = $meta['media'];
     2050            } elseif ( preg_match( '/' . get_shortcode_regex() . '/s', $meta[$type] ) ) {
     2051                $shortcode = $meta[$type];
     2052            } elseif ( preg_match( '#<[^>]+>#', $meta[$type] ) ) {
     2053                $post->format_content = $meta[$type];
    20542054                return $post->format_content;
    2055             } elseif ( 0 === strpos( $meta['media'], 'http' ) ) {
    2056                 $post->split_content = str_replace( $meta['media'], '', $post->post_content, $count );
    2057                 if ( strstr( $meta['media'], home_url() ) ) {
    2058                     $shortcode = sprintf( '[%s src="%s"]', $type, $meta['media'] );
     2055            } elseif ( 0 === strpos( $meta[$type], 'http' ) ) {
     2056                $post->split_content = str_replace( $meta[$type], '', $post->post_content, $count );
     2057                if ( strstr( $meta[$type], home_url() ) ) {
     2058                    $shortcode = sprintf( '[%s src="%s"]', $type, $meta[$type] );
    20592059                } else {
    2060                     $post->format_content = $wp_embed->autoembed( $meta['media'] );
     2060                    $post->format_content = $wp_embed->autoembed( $meta[$type] );
    20612061                    return $post->format_content;
    20622062                }
  • trunk/wp-includes/post-formats.php

    r23836 r23843  
    8585        'quote_source' => '',
    8686        'url'          => '',
    87         'media'        => '',
     87        'image'        => '',
     88        'gallery'      => '',
     89        'audio'        => '',
     90        'video'        => '',
    8891    );
    8992
     
    352355        case 'video':
    353356        case 'audio':
    354             if ( ! has_shortcode( $post->post_content, $format ) && ! empty( $meta['media'] ) ) {
     357            if ( ! has_shortcode( $post->post_content, $format ) && ! empty( $meta[$format] ) ) {
     358                // the metadata is an attachment ID
     359                if ( is_numeric( $meta[$format] ) ) {
     360                    $url = wp_get_attachment_url( $meta[$format] );
     361                    $format_output .= sprintf( '[%s src="%s"]', $format, $url );
    355362                // the metadata is a shortcode or an embed code
    356                 if ( preg_match( '/' . get_shortcode_regex() . '/s', $meta['media'] ) || preg_match( '#<[^>]+>#', $meta['media'] ) ) {
    357                     $format_output .= $meta['media'];
    358                 } elseif ( ! stristr( $content, $meta['media'] ) ) {
     363                } elseif ( preg_match( '/' . get_shortcode_regex() . '/s', $meta[$format] ) || preg_match( '#<[^>]+>#', $meta[$format] ) ) {
     364                    $format_output .= $meta[$format];
     365                } elseif ( ! stristr( $content, $meta[$format] ) ) {
    359366                    // attempt to embed the URL
    360                     $format_output .= sprintf( '[embed]%s[/embed]', $meta['media'] );
     367                    $format_output .= sprintf( '[embed]%s[/embed]', $meta[$format] );
    361368                }
    362369            }
Note: See TracChangeset for help on using the changeset viewer.