WordPress.org

Make WordPress Core

Ticket #24452: 24452.patch

File 24452.patch, 5.0 KB (added by azaozz, 8 years ago)
  • wp-includes/media.php

     
    20672067        if ( ! isset( $post->format_content ) )
    20682068                $post->format_content = array();
    20692069
    2070         $count = 1;
    2071 
    2072         if ( has_post_format( $type, $post ) ) {
    2073                 $meta = get_post_format_meta( $post->ID );
    2074                 if ( ! empty( $meta[$type . '_embed'] ) ) {
    2075                         $value = $meta[$type . '_embed'];
    2076                         if ( is_integer( $value ) ) {
    2077                                 $url = wp_get_attachment_url( $value );
    2078                                 $shortcode = sprintf( '[%s src="%s"]', $type, $url );
    2079                         } elseif ( preg_match( '/' . get_shortcode_regex() . '/s', $value ) ) {
    2080                                 $shortcode = $value;
    2081                         } elseif ( preg_match( '#<[^>]+>#', $value ) ) {
    2082                                 $post->format_content[ $cache_key ] = $value;
    2083                                 return $post->format_content[ $cache_key ];
    2084                         } elseif ( 0 === strpos( $value, 'http' ) ) {
    2085                                 $post->split_content = str_replace( $value, '', $post->post_content, $count );
    2086                                 if ( strstr( $value, home_url() ) ) {
    2087                                         $shortcode = sprintf( '[%s src="%s"]', $type, $value );
    2088                                 } else {
    2089                                         $post->format_content[ $cache_key ] = $wp_embed->autoembed( $value );
    2090                                         return $post->format_content[ $cache_key ];
    2091                                 }
    2092                         }
    2093 
    2094                         if ( ! empty( $shortcode ) ) {
    2095                                 $post->format_content[ $cache_key ] = do_shortcode( $shortcode );
    2096                                 return $post->format_content[ $cache_key ];
    2097                         }
    2098                 }
    2099         }
    2100 
    21012070        // these functions expect a reference, so we should make a copy of post content to avoid changing it
    21022071        $content = $post->post_content;
    21032072
     
    24382407                $post->format_content = array();
    24392408
    24402409        $matched = false;
    2441         $meta = get_post_format_meta( $post->ID );
    24422410
    2443         $link_fmt = '%s';
    2444         if ( ! empty( $meta['url'] ) )
    2445                 $link_fmt = '<a href="' . esc_url( $meta['url'] ) . '">%s</a>';
    2446 
    2447         if ( ! empty( $meta['image'] ) ) {
    2448                 if ( is_numeric( $meta['image'] ) ) {
    2449                         $image = wp_get_attachment_image( absint( $meta['image'] ), $attached_size );
    2450                         // wrap image in <a>
    2451                         if ( ! empty( $meta['url'] ) )
    2452                                 $image = sprintf( $link_fmt, $image );
    2453                 } elseif ( has_shortcode( $meta['image'], 'caption' ) ) {
    2454                         // wrap <img> in <a>
    2455                         if ( ! empty( $meta['url'] ) && false === strpos( $meta['image'], '<a ' ) ) {
    2456                                 $meta['image'] = preg_replace(
    2457                                         '#(<img[^>]+>)#',
    2458                                         sprintf( '<a href="%s">$1</a>', esc_url( $meta['url'] ) ),
    2459                                         $meta['image']
    2460                                 );
    2461                         }
    2462 
    2463                         $attachment_id = img_html_to_post_id( $meta['image'], $matched_html );
    2464                         if ( $attachment_id && $matched_html ) {
    2465                                 $meta['image'] = str_replace( $matched_html, wp_get_attachment_image( $attachment_id, $attached_size ), $meta['image'] );
    2466                                 $attachment = wp_get_attachment_image_src( $attachment_id, $attached_size );
    2467                                 $attachment_width = ( ! empty( $attachment[1] ) ) ? $attachment[1] : 0;
    2468 
    2469                                 if ( $attachment_width && preg_match_all( '#width=([\'"])(.+?)\1#is', $meta['image'], $matches ) && ! empty( $matches ) )
    2470                                         foreach ( $matches[2] as $width )
    2471                                                 if ( $width != $attachment_width )
    2472                                                         $meta['image'] = str_replace( $matches[0], sprintf( 'width="%d"', $attachment_width ), $meta['image'] );
    2473                         }
    2474 
    2475                         $image = do_shortcode( $meta['image'] );
    2476                 } elseif ( ! preg_match( '#<[^>]+>#', $meta['image'] ) ) {
    2477                         // not HTML, assume URL
    2478                         $attachment_id = attachment_url_to_postid( $meta['image'] );
    2479                         if ( $attachment_id )
    2480                                 $image = wp_get_attachment_image( $attachment_id, $attached_size );
    2481                         else
    2482                                 $image = sprintf( '<img src="%s" alt="" />', esc_url( $meta['image'] ) );
    2483                 } else {
    2484                         // assume HTML
    2485                         $image = $meta['image'];
    2486                         $attachment_id = img_html_to_post_id( $image, $matched_html );
    2487                         if ( $attachment_id && $matched_html )
    2488                                 $image = str_replace( $matched_html, wp_get_attachment_image( $attachment_id, $attached_size ), $image );
    2489                 }
    2490 
    2491                 if ( false === strpos( $image, '<a ' ) )
    2492                         $post->format_content[ $cache_key ] = sprintf( $link_fmt, $image );
    2493                 else
    2494                         $post->format_content[ $cache_key ] = $image;
    2495                 return $post->format_content[ $cache_key ];
    2496         }
    2497 
    24982411        $medias = get_attached_images( $post->ID );
    24992412        if ( ! empty( $medias ) ) {
    25002413                $media = reset( $medias );
     
    25442457
    25452458                $post->split_content = $content;
    25462459                if ( ! $matched ) {
    2547                         $image = wp_get_attachment_image( $media->ID, $attached_size );
    2548                         $post->format_content[ $cache_key ] = sprintf( $link_fmt, $image );
     2460                        $post->format_content[ $cache_key ] = wp_get_attachment_image( $media->ID, $attached_size );
    25492461                } else {
    25502462                        $post->format_content[ $cache_key ] = $matched;
    2551                         if ( ! empty( $meta['url'] ) && false === stripos( $matched, '<a ' ) )
    2552                                 $post->format_content[ $cache_key ] = sprintf( $link_fmt, $matched );
    25532463                }
    25542464                return $post->format_content[ $cache_key ];
    25552465        }
     
    25642474                        $html = str_replace( $matched_html, wp_get_attachment_image( $attachment_id, $attached_size ), $html );
    25652475
    25662476                $post->split_content = $content;
    2567                 $post->format_content[ $cache_key ] = sprintf( $link_fmt, $html );
     2477                $post->format_content[ $cache_key ] = $html;
    25682478                return $post->format_content[ $cache_key ];
    25692479        }
    25702480