From e7cde8715ffe48363e03cb5fdded0ffdd842f1c4 Mon Sep 17 00:00:00 2001 From: Mark Jaquith Date: Fri, 29 Mar 2013 03:35:41 +0000 Subject: [PATCH] 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. git-svn-id: https://develop.svn.wordpress.org/trunk@23843 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-admin/css/wp-admin-rtl.css | 28 ++++ wp-admin/css/wp-admin.css | 211 +++++++++++++++++++++++++++++ wp-admin/edit-form-advanced.php | 120 ++++++++-------- wp-admin/images/post-formats32.png | Bin 0 -> 71767 bytes wp-admin/includes/post-formats.php | 114 ++++++++++++++++ wp-admin/includes/post.php | 2 +- wp-admin/includes/screen.php | 8 ++ wp-admin/js/post-formats.js | 117 ++++++++++++++-- wp-admin/js/post.js | 8 +- wp-includes/js/autosave.js | 8 +- wp-includes/media.php | 24 ++-- wp-includes/post-formats.php | 19 ++- 12 files changed, 576 insertions(+), 83 deletions(-) create mode 100644 wp-admin/images/post-formats32.png create mode 100644 wp-admin/includes/post-formats.php diff --git a/wp-admin/css/wp-admin-rtl.css b/wp-admin/css/wp-admin-rtl.css index ba157f570d..e04fafd8cf 100644 --- a/wp-admin/css/wp-admin-rtl.css +++ b/wp-admin/css/wp-admin-rtl.css @@ -23,6 +23,7 @@ TABLE OF CONTENTS: 11.1 - Custom Fields 11.2 - Post Revisions 11.3 - Featured Images + 11.4 - Post Format Selection 12.0 - Categories 13.0 - Tags 14.0 - Media Screen @@ -966,6 +967,33 @@ table.diff td, table.diff th { float: right; } +/*------------------------------------------------------------------------------ + 11.4 - Post format selection +------------------------------------------------------------------------------*/ + +.post-format-options a { + border-left: 1px solid #ebebeb; + border-right: none; +} + +.post-format-options a:first-child { + -webkit-border-bottom-left-radius: 0; + -webkit-border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.post-format-options a:last-child { + -webkit-border-bottom-right-radius: 3px; + -webkit-border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + border-top-right-radius: 3px; +} + +.post-format-tip { + float: left; +} + /*------------------------------------------------------------------------------ 12.0 - Categories ------------------------------------------------------------------------------*/ diff --git a/wp-admin/css/wp-admin.css b/wp-admin/css/wp-admin.css index 7fb44bc2ab..5fd2a0726e 100644 --- a/wp-admin/css/wp-admin.css +++ b/wp-admin/css/wp-admin.css @@ -24,6 +24,7 @@ TABLE OF CONTENTS: 11.1 - Custom Fields 11.2 - Post Revisions 11.3 - Featured Images + 11.4 - Post Format Selection 12.0 - Categories 13.0 - Tags 14.0 - Media Screen @@ -3150,10 +3151,14 @@ input#link_url { display: none; } +.wp-format-gallery .post-formats-fields, +.wp-format-image .post-formats-fields, .wp-format-link .post-formats-fields, .wp-format-quote .post-formats-fields, .wp-format-video .post-formats-fields, .wp-format-audio .post-formats-fields, +.wp-format-gallery .field.wp-format-gallery, +.wp-format-image .field.wp-format-image, .wp-format-chat .field.wp-format-chat, .wp-format-link .field.wp-format-link, .wp-format-quote .field.wp-format-quote, @@ -3165,6 +3170,7 @@ input#link_url { .post-formats-fields .field { display: none; margin-bottom: 10px; + overflow: hidden; } .post-formats-fields input, @@ -3173,6 +3179,66 @@ input#link_url { font-size: 1.2em; } +.wp-format-media-holder { + float: left; + overflow: hidden; + width: 40%; + height: 200px; + border: 1px dashed #dfdfdf; + background: #f5f5f5 url(../images/media-button-2x.png) no-repeat 50% 25%; +} + +.wp-format-media-holder.empty { + height: auto; + padding: 55px 0 20px; +} + +.wp-format-media-holder:hover { + background-color: #eee; +} + +.wp-format-media-preview { + margin-bottom: 20px; +} + +.mejs-audio audio, +.mejs-video video { + display: block; +} + +.wp-format-media-select { + display: block; + height: 200px; + text-align: center; +} + +.wp-format-media-select img { + max-width: 100%; + max-height: 100%; +} + +.empty .wp-format-media-select { + height: 20px; +} + +.empty .wp-format-media-metaedit { + height: 20px; + display: block; + text-align: center; +} + +.edit-format-preview { + display: block; + margin: 5px 0; +} + +#wp_format_audio, #wp_format_video { + float: left; + margin-right: 23px; + max-width: 50%; + min-height: 97px; +} + /* Post Screen */ #post-body #normal-sortables { min-height: 50px; @@ -4065,6 +4131,151 @@ body .ui-tooltip { display: none; } +/*------------------------------------------------------------------------------ + 11.4 - Post format selection +------------------------------------------------------------------------------*/ + +#icon-edit.standard { + background: url(../images/post-formats32.png) no-repeat -3px -4px; +} + +#icon-edit.image { + background: url(../images/post-formats32.png) no-repeat -43px -4px; +} + +#icon-edit.gallery { + background: url(../images/post-formats32.png) no-repeat -83px -4px; +} + +#icon-edit.audio { + background: url(../images/post-formats32.png) no-repeat -123px -4px; +} + +#icon-edit.video { + background: url(../images/post-formats32.png) no-repeat -163px -4px; +} + +#icon-edit.chat { + background: url(../images/post-formats32.png) no-repeat -202px -4px; +} + +#icon-edit.status { + background: url(../images/post-formats32.png) no-repeat -242px -4px; +} + +#icon-edit.aside { + background: url(../images/post-formats32.png) no-repeat -282px -4px; +} + +#icon-edit.quote { + background: url(../images/post-formats32.png) no-repeat -322px -4px; +} + +#icon-edit.link { + background: url(../images/post-formats32.png) no-repeat -362px -4px; +} + +.post-format-description { + color: #666; + display: none; + margin: 10px 0; +} + +.post-format-options { + height: 29px; + background: #f9f9f9; + border: 1px solid #dfdfdf; + -webkit-border-radius: 3px; + border-radius: 3px; + margin: 0 0 9px 1px; + padding: 0; +} + +.post-format-options a { + border-right: 1px solid #ebebeb; + display: inline-block; + height: 16px; + width: 16px; + padding: 6px; + position: relative; + text-decoration: none; +} + +.post-format-options a:first-child { + -webkit-border-bottom-left-radius: 3px; + -webkit-border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; +} + +.post-format-options a.active, +.post-format-options a:focus, +.post-format-options a:hover { + background: #fff; + outline: none; + opacity: 1; +} + +.post-format-options a div { + height: 16px; + width: 16px; + opacity: 0.4; +} + +.post-format-options a.active div, +.post-format-options a:focus div, +.post-format-options a:hover div { + opacity: 1; +} + +.post-format-options .standard { + background: url(../images/post-formats.png) no-repeat -8px -8px; +} + +.post-format-options .image { + background: url(../images/post-formats.png) no-repeat -40px -8px; +} + +.post-format-options .gallery { + background: url(../images/post-formats.png) no-repeat -72px -8px; +} + +.post-format-options .audio { + background: url(../images/post-formats.png) no-repeat -104px -8px; +} + +.post-format-options .video { + background: url(../images/post-formats.png) no-repeat -136px -8px; +} + +.post-format-options .chat { + background: url(../images/post-formats.png) no-repeat -168px -8px; +} + +.post-format-options .status { + background: url(../images/post-formats.png) no-repeat -200px -8px; +} + +.post-format-options .aside { + background: url(../images/post-formats.png) no-repeat -232px -8px; +} + +.post-format-options .quote { + background: url(../images/post-formats.png) no-repeat -264px -8px; +} + +.post-format-options .link { + background: url(../images/post-formats.png) no-repeat -296px -8px; +} + +.post-format-tip { + color: #999; + font-size: 14px; + float: right; + padding: 6px 10px; + text-transform: capitalize; +} + /*------------------------------------------------------------------------------ 12.0 - Categories ------------------------------------------------------------------------------*/ diff --git a/wp-admin/edit-form-advanced.php b/wp-admin/edit-form-advanced.php index c7e8dc6554..6cb098fd86 100644 --- a/wp-admin/edit-form-advanced.php +++ b/wp-admin/edit-form-advanced.php @@ -130,6 +130,8 @@ foreach ( get_object_taxonomies( $post ) as $tax_name ) { $format_class = ''; if ( post_type_supports( $post_type, 'post-formats' ) ) { wp_enqueue_script( 'post-formats' ); + wp_enqueue_script( 'wp-mediaelement' ); + wp_enqueue_style( 'wp-mediaelement' ); $post_format = get_post_format(); if ( ! $post_format ) @@ -138,6 +140,57 @@ if ( post_type_supports( $post_type, 'post-formats' ) ) { $format_class = " class='wp-format-{$post_format}'"; } +if ( post_type_supports( $post_type, 'post-formats' ) ) { + $all_post_formats = array( + 'standard' => array ( + 'description' => __( 'Add a title and use the editor to compose your post.' ) + ), + 'image' => array ( + 'description' => __( 'Select or upload an image to use for your post.' ) + ), + 'gallery' => array ( + 'description' => __( 'Use the Add Media button to select or upload images for your gallery.' ) + ), + 'link' => array ( + 'description' => __( 'Add a link URL below.' ) + ), + 'video' => array ( + 'description' => __( 'Paste a video embed into the box, upload a video file, or choose one from your Media Library.' ) + ), + 'audio' => array ( + 'description' => __( 'Paste an audio embed into the box, upload an audio file, or choose one from your Media Library.' ) + ), + 'chat' => array ( + 'description' => __( 'Copy a chat or Q&A transcript into the editor.' ) + ), + 'status' => array ( + 'description' => __( 'Use the editor to compose a status update. What’s new?' ) + ), + 'quote' => array ( + 'description' => __( 'Copy a quotation into the box. Also add the source and URL if you have them.' ) + ), + 'aside' => array ( + 'description' => __( 'An aside is a quick thought or side topic. Use the editor to compose one.' ) + ) + ); + $post_format_options = ''; + + foreach ( $all_post_formats as $slug => $attr ) { + $class = ''; + if ( $post_format == $slug ) { + $class = 'class="active"'; + $active_post_type_slug = $slug; + $active_post_type_label = ucfirst( $slug ); + $active_post_format_description = $attr['description']; + } + + $post_format_options .= '
'; + } +} + +$current_post_format = array( 'currentPostFormat' => esc_html( $active_post_type_slug ) ); +wp_localize_script( 'post', 'postFormats', $current_post_format ); + if ( post_type_supports($post_type, 'page-attributes') ) add_meta_box('pageparentdiv', 'page' == $post_type ? __('Page Attributes') : __('Attributes'), 'page_attributes_meta_box', null, 'side', 'core'); @@ -337,29 +390,16 @@ wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); ?>
- -'; - - foreach ( $all_post_formats as $slug => $label ) { - if ( $post_format == $slug ) - $class = 'nav-tab nav-tab-active'; - else - $class = 'nav-tab'; - - echo '' . $label . ''; - } - - echo ''; -} -?> -
> + +
+ Standard Post + +
+ +
@@ -373,10 +413,12 @@ $shortlink = wp_get_shortlink($post->ID, 'post'); if ( !empty($shortlink) ) $sample_permalink_html .= '' . __('Get Shortlink') . ''; -if ( $post_type_object->public && ! ( 'pending' == get_post_status( $post ) && !current_user_can( $post_type_object->cap->publish_posts ) ) ) { ?> -
+if ( $post_type_object->public && ! ( 'pending' == get_post_status( $post ) && !current_user_can( $post_type_object->cap->publish_posts ) ) ) { + $has_sample_permalink = $sample_permalink_html && 'auto-draft' != $post->post_status; +?> + @@ -398,36 +440,8 @@ if ( has_action( 'edit_form_after_title' ) ) { } // post format fields -if ( post_type_supports( $post_type, 'post-formats' ) ) { - $format_meta = get_post_format_meta( $post_ID ); -?> -
- - - -
- - -
- -
- - -
- - - -
- - -
- -
- diff --git a/wp-admin/images/post-formats32.png b/wp-admin/images/post-formats32.png new file mode 100644 index 0000000000000000000000000000000000000000..9c1239a7b4908acefa470e723b5a019e74725842 GIT binary patch literal 71767 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 +
+
+ + + +
+ + +
+ +
+ + +
+ + +
+ + + + +
+ +
+ ]+>#', $format_meta['video'] ) ) { + if ( strstr( $format_meta['video'], home_url() ) ) + echo do_shortcode( sprintf( '[video src="%s"]', $format_meta['video'] ) ); + else + echo $wp_embed->autoembed( $format_meta['video'] ); + } else { + echo $format_meta['video']; + } + ?> +
+ + + +
+ + + +
+
+ + +
+ +
+ ]+>#', $format_meta['audio'] ) ) { + if ( strstr( $format_meta['audio'], home_url() ) ) + echo do_shortcode( sprintf( '[audio src="%s"]', $format_meta['audio'] ) ); + else + echo $wp_embed->autoembed( $format_meta['audio'] ); + } else { + echo $format_meta['audio']; + } + ?> +
+ + + +
+ + + +
+
+
\ No newline at end of file diff --git a/wp-admin/includes/post.php b/wp-admin/includes/post.php index 6167b3e356..2bf7b2b2a5 100644 --- a/wp-admin/includes/post.php +++ b/wp-admin/includes/post.php @@ -200,7 +200,7 @@ function edit_post( $post_data = null ) { update_post_meta( $post_ID, '_wp_format_url', wp_slash( esc_url_raw( wp_unslash( $post_data['_wp_format_url'] ) ) ) ); } - $format_keys = array( 'quote', 'quote_source', 'image', 'gallery', 'media' ); + $format_keys = array( 'quote', 'quote_source', 'image', 'gallery', 'image', 'gallery', 'audio', 'video' ); foreach ( $format_keys as $key ) { if ( isset( $post_data[ '_wp_format_' . $key ] ) ) diff --git a/wp-admin/includes/screen.php b/wp-admin/includes/screen.php index 7103c8445d..b82134e1d8 100644 --- a/wp-admin/includes/screen.php +++ b/wp-admin/includes/screen.php @@ -142,11 +142,13 @@ function screen_icon( $screen = '' ) { * * @since 3.2.0 * + * @global $post_ID * @param string|WP_Screen $screen Optional. Accepts a screen object (and defaults to the current screen object) * which it uses to determine an icon HTML ID. Or, if a string is provided, it is used to form the icon HTML ID. * @return string HTML for the screen icon. */ function get_screen_icon( $screen = '' ) { + global $post_ID; if ( empty( $screen ) ) $screen = get_current_screen(); elseif ( is_string( $screen ) ) @@ -165,6 +167,12 @@ function get_screen_icon( $screen = '' ) { if ( $screen->post_type ) $class .= ' ' . sanitize_html_class( 'icon32-posts-' . $screen->post_type ); + + if ( $post_ID ) { + $format = get_post_format( $post_ID ); + if ( $format ) + $class .= ' ' . $format; + } } return '

'; diff --git a/wp-admin/js/post-formats.js b/wp-admin/js/post-formats.js index 75f7f9068a..4a1b52737f 100644 --- a/wp-admin/js/post-formats.js +++ b/wp-admin/js/post-formats.js @@ -1,19 +1,30 @@ -(function($){ +window.wp = window.wp || {}; + +(function($) { + var mediaFrame, lastMimeType, lastMenu, mediaPreview; // Post formats selection - $('.post-format-select a').on( 'click.post-format', function(e) { - var $this = $(this), - editor, - body, + $('.post-format-options a').on( 'click', function(e){ + var $this = $(this), editor, body, + parent = $this.parent(), format = $this.data('wp-format'), - container = $('#post-body-content'); + container = $('#post-body-content'), + description = $('.post-format-description'); - $('.post-format-select a.nav-tab-active').removeClass('nav-tab-active'); - $this.addClass('nav-tab-active').blur(); + parent.find('a.active').removeClass('active'); + $this.addClass('active'); + $('#icon-edit').removeClass(postFormats.currentPostFormat).addClass(format); $('#post_format').val(format); container.get(0).className = container.get(0).className.replace( /\bwp-format-[^ ]+/, '' ); container.addClass('wp-format-' + format); + $('#title').focus(); + + // Update description line + description.html($this.data('description')); + + if (description.not(':visible')) + description.slideDown('fast'); if ( typeof tinymce != 'undefined' ) { editor = tinymce.get('content'); @@ -25,7 +36,95 @@ } } + postFormats.currentPostFormat = format; + e.preventDefault(); + }).on('mouseenter focusin', function () { + $('.post-format-tip').html( $(this).prop('title') ); + }).on('mouseleave focusout', function () { + $('.post-format-tip').html( $('.post-format-options a.active').prop('title') ); }); -})(jQuery); + // Media selection + $('.wp-format-media-select').click(function (event) { + event.preventDefault(); + var $el = $(this), $holder, $field, mime = 'image', menu = '', + $holder = $el.closest('.wp-format-media-holder'), + $field = $( '#wp_format_' + $holder.data('format') ); + + switch ( $holder.data('format') ) { + case 'audio': + mime = 'audio'; + break; + case 'video': + mime = 'video'; + break; + } + + // If the media frame already exists, reopen it. + if ( mediaFrame && lastMimeType === mime && lastMenu === menu ) { + mediaFrame.open(); + return; + } + + lastMimeType = mime; + lastMenu = menu; + + // Create the media frame. + mediaFrame = wp.media.frames.formatMedia = wp.media({ + // Set the title of the modal. + title: $el.data('choose'), + + // Set the menu sidebar of the modal, if applicable + toolbar: menu, + + // Tell the modal to show only items matching the current mime type. + library: { + type: mime + }, + + // Customize the submit button. + button: { + // Set the text of the button. + text: $el.data('update') + } + }); + + mediaPreview = function (format, url, mime) { + $('#' + format + '-preview').remove(); + $holder.parent().prepend( '
' + + '<' + format + ' class="wp-' + format + '-shortcode" controls="controls" preload="none">' + + '' + + '
' ); + $('.wp-' + format + '-shortcode').mediaelementplayer(); + }; + + // When an image is selected, run a callback. + mediaFrame.on( 'select', function () { + // Grab the selected attachment. + var attachment = mediaFrame.state().get('selection').first(), mime, url, id; + + id = attachment.get('id'); + url = attachment.get('url'); + mime = attachment.get('mime'); + + if ( 0 === mime.indexOf('audio') ) { + $field.val(url); + // show one preview at a time + mediaPreview('audio', url, mime); + } else if ( 0 === mime.indexOf('video') ) { + $field.val(url); + // show one preview at a time + mediaPreview('video', url, mime); + } else { + // set the hidden input's value + $field.val(url); + // Show the image in the placeholder + $el.html(''); + $holder.removeClass('empty').show(); + } + }); + + mediaFrame.open(); + }); +})(jQuery); \ No newline at end of file diff --git a/wp-admin/js/post.js b/wp-admin/js/post.js index e84f388f6c..49f7a0c938 100644 --- a/wp-admin/js/post.js +++ b/wp-admin/js/post.js @@ -641,7 +641,13 @@ jQuery(document).ready( function($) { new_title: $('#title').val(), samplepermalinknonce: $('#samplepermalinknonce').val() }, function(data) { - $('#edit-slug-box').html(data); + var box = $('#edit-slug-box'); + box.html(data); + if (box.hasClass('hidden')) { + box.fadeIn('fast', function () { + box.removeClass('hidden'); + }); + } b.html(revert_b); real_slug.val(new_slug); makeSlugeditClickable(); diff --git a/wp-includes/js/autosave.js b/wp-includes/js/autosave.js index 43b2b4eb88..e185a60224 100644 --- a/wp-includes/js/autosave.js +++ b/wp-includes/js/autosave.js @@ -199,7 +199,13 @@ function autosave_update_slug(post_id) { }, function(data) { if ( data !== '-1' ) { - jQuery('#edit-slug-box').html(data); + var box = jQuery('#edit-slug-box'); + box.html(data); + if (box.hasClass('hidden')) { + box.fadeIn('fast', function () { + box.removeClass('hidden'); + }); + } makeSlugeditClickable(); } } diff --git a/wp-includes/media.php b/wp-includes/media.php index 9dbef91c3e..dfcb62cc35 100644 --- a/wp-includes/media.php +++ b/wp-includes/media.php @@ -2043,21 +2043,21 @@ function get_the_media( $type, &$post = null ) { if ( has_post_format( $type ) ) { $meta = get_post_format_meta( $post->ID ); - if ( ! empty( $meta['media'] ) ) { - if ( is_numeric( $meta['media'] ) ) { - $url = wp_get_attachment_url( $meta['media'] ); + if ( ! empty( $meta[$type] ) ) { + if ( is_integer( $meta[$type] ) ) { + $url = wp_get_attachment_url( $meta[$type] ); $shortcode = sprintf( '[%s src="%s"]', $type, $url ); - } elseif ( preg_match( '/' . get_shortcode_regex() . '/s', $meta['media'] ) ) { - $shortcode = $meta['media']; - } elseif ( preg_match( '#<[^>]+>#', $meta['media'] ) ) { - $post->format_content = $meta['media']; + } elseif ( preg_match( '/' . get_shortcode_regex() . '/s', $meta[$type] ) ) { + $shortcode = $meta[$type]; + } elseif ( preg_match( '#<[^>]+>#', $meta[$type] ) ) { + $post->format_content = $meta[$type]; return $post->format_content; - } elseif ( 0 === strpos( $meta['media'], 'http' ) ) { - $post->split_content = str_replace( $meta['media'], '', $post->post_content, $count ); - if ( strstr( $meta['media'], home_url() ) ) { - $shortcode = sprintf( '[%s src="%s"]', $type, $meta['media'] ); + } elseif ( 0 === strpos( $meta[$type], 'http' ) ) { + $post->split_content = str_replace( $meta[$type], '', $post->post_content, $count ); + if ( strstr( $meta[$type], home_url() ) ) { + $shortcode = sprintf( '[%s src="%s"]', $type, $meta[$type] ); } else { - $post->format_content = $wp_embed->autoembed( $meta['media'] ); + $post->format_content = $wp_embed->autoembed( $meta[$type] ); return $post->format_content; } } diff --git a/wp-includes/post-formats.php b/wp-includes/post-formats.php index 86bcd74389..5c347748e1 100644 --- a/wp-includes/post-formats.php +++ b/wp-includes/post-formats.php @@ -84,7 +84,10 @@ function get_post_format_meta( $post_id = 0 ) { 'quote' => '', 'quote_source' => '', 'url' => '', - 'media' => '', + 'image' => '', + 'gallery' => '', + 'audio' => '', + 'video' => '', ); foreach ( $values as $key => $value ) @@ -351,13 +354,17 @@ function post_formats_compat( $content, $id = 0 ) { case 'video': case 'audio': - if ( ! has_shortcode( $post->post_content, $format ) && ! empty( $meta['media'] ) ) { + if ( ! has_shortcode( $post->post_content, $format ) && ! empty( $meta[$format] ) ) { + // the metadata is an attachment ID + if ( is_numeric( $meta[$format] ) ) { + $url = wp_get_attachment_url( $meta[$format] ); + $format_output .= sprintf( '[%s src="%s"]', $format, $url ); // the metadata is a shortcode or an embed code - if ( preg_match( '/' . get_shortcode_regex() . '/s', $meta['media'] ) || preg_match( '#<[^>]+>#', $meta['media'] ) ) { - $format_output .= $meta['media']; - } elseif ( ! stristr( $content, $meta['media'] ) ) { + } elseif ( preg_match( '/' . get_shortcode_regex() . '/s', $meta[$format] ) || preg_match( '#<[^>]+>#', $meta[$format] ) ) { + $format_output .= $meta[$format]; + } elseif ( ! stristr( $content, $meta[$format] ) ) { // attempt to embed the URL - $format_output .= sprintf( '[embed]%s[/embed]', $meta['media'] ); + $format_output .= sprintf( '[embed]%s[/embed]', $meta[$format] ); } } break;