Changeset 24066 for trunk/wp-includes/media.php
- Timestamp:
- 04/22/2013 10:11:42 PM (13 years ago)
- File:
-
- 1 edited
-
trunk/wp-includes/media.php (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-includes/media.php
r24021 r24066 1967 1967 foreach ( array( $type, 'object', 'embed', 'iframe' ) as $tag ) { 1968 1968 if ( preg_match( '#' . get_tag_regex( $tag ) . '#', $content, $matches ) ) { 1969 $html[] = $matches[ 1];1969 $html[] = $matches[0]; 1970 1970 if ( $remove ) 1971 1971 $content = str_replace( $matches[0], '', $content ); … … 2210 2210 $captions = array(); 2211 2211 2212 if ( $remove &&preg_match_all( '/' . get_shortcode_regex() . '/s', $content, $matches, PREG_SET_ORDER ) && ! empty( $matches ) ) {2212 if ( preg_match_all( '/' . get_shortcode_regex() . '/s', $content, $matches, PREG_SET_ORDER ) && ! empty( $matches ) ) { 2213 2213 foreach ( $matches as $shortcode ) { 2214 if ( 'caption' === $shortcode[2] ) 2214 if ( 'caption' === $shortcode[2] ) { 2215 2215 $captions[] = $shortcode[0]; 2216 } 2217 } 2218 2219 if ( preg_match_all( '#<img[^>]+/?>#i', $content, $matches, PREG_SET_ORDER ) && ! empty( $matches ) ) { 2220 foreach ( $matches as $tag ) { 2221 $count = 1; 2222 if ( $remove ) { 2216 if ( $html ) 2217 $tags[] = do_shortcode( $shortcode[0] ); 2218 } 2219 2220 if ( $limit > 0 && count( $tags ) >= $limit ) 2221 break; 2222 } 2223 } 2224 2225 foreach ( array( 'a', 'img' ) as $tag ) { 2226 if ( preg_match_all( '#' . get_tag_regex( $tag ) . '#i', $content, $matches, PREG_SET_ORDER ) && ! empty( $matches ) ) { 2227 foreach ( $matches as $node ) { 2228 if ( ! strstr( $node[0], '<img ' ) ) 2229 continue; 2230 2231 $count = 1; 2232 $found = false; 2233 2223 2234 foreach ( $captions as $caption ) { 2224 if ( strstr( $caption, $tag[0] ) ) { 2225 $content = str_replace( $caption, '', $content, $count ); 2235 if ( strstr( $caption, $node[0] ) ) { 2236 $found = true; 2237 if ( $remove ) 2238 $content = str_replace( $caption, '', $content, $count ); 2226 2239 } 2227 2240 } 2228 2241 2229 $content = str_replace( $tag[0], '', $content, $count ); 2242 if ( $remove ) 2243 $content = str_replace( $node[0], '', $content, $count ); 2244 2245 if ( ! $found ) 2246 $tags[] = $node[0]; 2247 2248 if ( $limit > 0 && count( $tags ) >= $limit ) 2249 break 2; 2230 2250 } 2231 2232 $tags[] = $tag[0];2233 2234 if ( $limit > 0 && count( $tags ) >= $limit )2235 break;2236 2251 } 2237 2252 } … … 2401 2416 return $post->format_content; 2402 2417 2418 $matched = false; 2403 2419 $meta = get_post_format_meta( $post->ID ); 2404 2420 … … 2408 2424 2409 2425 if ( ! empty( $meta['image'] ) ) { 2410 if ( is_numeric( $meta['image'] ) ) 2426 if ( is_numeric( $meta['image'] ) ) { 2411 2427 $image = wp_get_attachment_image( absint( $meta['image'] ), $attached_size ); 2412 elseif ( preg_match( '/' . get_shortcode_regex() . '/s', $meta['image'] ) ) 2428 // wrap image in <a> 2429 if ( ! empty( $meta['url'] ) ) 2430 $image = sprint( $link_fmt, $image ); 2431 } elseif ( has_shortcode( $meta['image'], 'gallery' ) ) { 2432 // wrap <img> in <a> 2433 if ( ! empty( $meta['url'] ) && false === strpos( $meta['image'], '<a ' ) ) { 2434 $meta['image'] = preg_replace( 2435 '#(<img[^>]+>)#', 2436 sprintf( '<a href="%s">$1</a>', esc_url( $meta['url'] ) ), 2437 $meta['image'] 2438 ); 2439 } 2413 2440 $image = do_shortcode( $meta['image'] ); 2414 elseif ( ! preg_match( '#<[^>]+>#', $meta['image'] ) ) 2441 } elseif ( ! preg_match( '#<[^>]+>#', $meta['image'] ) ) { 2442 // not HTML, assume URL 2415 2443 $image = sprintf( '<img src="%s" alt="" />', esc_url( $meta['image'] ) ); 2444 } else { 2445 // assume HTML 2446 $image = $meta['image']; 2447 } 2448 2449 if ( false === strpos( $image, '<a ' ) ) 2450 $post->format_content = sprintf( $link_fmt, $image ); 2416 2451 else 2417 $image = $meta['image']; 2418 2419 $post->format_content = sprintf( $link_fmt, $image ); 2452 $post->format_content = $image; 2420 2453 return $post->format_content; 2421 2454 } … … 2445 2478 if ( 'caption' === $shortcode[2] ) { 2446 2479 foreach ( $urls as $url ) { 2447 if ( strstr( $shortcode[0], $url ) ) 2480 if ( strstr( $shortcode[0], $url ) ) { 2481 if ( ! $matched ) 2482 $matched = do_shortcode( $shortcode[0] ); 2448 2483 $content = str_replace( $shortcode[0], '', $content, $count ); 2484 } 2449 2485 } 2450 2486 } … … 2456 2492 foreach ( $matches as $match ) { 2457 2493 foreach ( $urls as $url ) { 2458 if ( strstr( $match[0], $url ) ) 2494 if ( strstr( $match[0], $url ) ) { 2495 if ( ! $matched ) 2496 $matched = $match[0]; 2459 2497 $content = str_replace( $match[0], '', $content, $count ); 2498 } 2460 2499 } 2461 2500 } … … 2464 2503 2465 2504 $post->split_content = $content; 2466 $image = wp_get_attachment_image( $media->ID, $attached_size ); 2467 $post->format_content = sprintf( $link_fmt, $image ); 2505 if ( ! $matched ) { 2506 $image = wp_get_attachment_image( $media->ID, $attached_size ); 2507 $post->format_content = sprintf( $link_fmt, $image ); 2508 } else { 2509 $post->format_content = $matched; 2510 if ( ! empty( $meta['url'] ) && false === stripos( $matched, '<a ' ) ) 2511 $post->format_content = sprintf( $link_fmt, $matched ); 2512 } 2468 2513 return $post->format_content; 2469 2514 }
Note: See TracChangeset
for help on using the changeset viewer.