WordPress.org

Make WordPress Core

Ticket #24202: 24202.diff

File 24202.diff, 20.4 KB (added by DrewAPicture, 22 months ago)

First-pass.

  • wp-includes/media.php

     
    19061906 * @param int $limit Optional. The number of medias to return 
    19071907 * @return array A list of parsed shortcodes or extracted srcs 
    19081908 */ 
    1909 function get_content_media( $type, &$content, $html = true, $remove = false, $limit = 0 ) { 
     1909function get_content_media( $args = array() ) { 
     1910        $defaults = array( 
     1911                'type'                => null, 
     1912                'content'             => &$content, 
     1913                'return_html'         => true, 
     1914                'remove_from_content' => false, 
     1915                'media_count'         => 0 
     1916        ); 
     1917         
     1918        $args = wp_parse_args( $args, $defaults ); 
     1919         
     1920        if ( null == $args['type'] ) 
     1921                return; 
     1922 
    19101923        $items = array(); 
    19111924 
    1912         if ( preg_match_all( '/' . get_shortcode_regex() . '/s', $content, $matches, PREG_SET_ORDER ) && ! empty( $matches ) ) { 
     1925        if ( preg_match_all( '/' . get_shortcode_regex() . '/s', $args['content'], $matches, PREG_SET_ORDER ) && ! empty( $matches ) ) { 
    19131926                foreach ( $matches as $shortcode ) { 
    1914                         if ( $type === $shortcode[2] ) { 
     1927                        if ( $args['type'] === $shortcode[2] ) { 
    19151928                                $count = 1; 
    1916                                 if ( $remove ) 
    1917                                         $content =& str_replace( $shortcode[0], '', $content, $count ); 
     1929                                if ( $args['remove_from_content'] ) 
     1930                                        $args['content'] =& str_replace( $shortcode[0], '', $args['content'], $count ); 
    19181931 
    19191932                                $items[] = do_shortcode_tag( $shortcode ); 
    1920                                 if ( $limit > 0 && count( $items ) >= $limit ) 
     1933                                if ( $args['media_count'] > 0 && count( $items ) >= $args['media_count'] ) 
    19211934                                        break; 
    19221935                        } 
    19231936                } 
    19241937        } 
    19251938 
    1926         if ( $html ) 
     1939        if ( $args['return_html'] ) 
    19271940                return $items; 
    19281941 
    19291942        $data = array(); 
     
    19481961 * 
    19491962 * @since 3.6.0 
    19501963 * 
    1951  * @param string $type Type of media: audio or video 
     1964 * @param array $args (optional) An array of arguments. 
    19521965 * @param string $content A string which might contain media data. 
    19531966 * @param boolean $remove Whether to remove the found URL from the passed content. 
    19541967 * @param int $limit Optional. The number of galleries to return 
    19551968 * @return array A list of found HTML media embeds and possibly a URL by itself 
    19561969 */ 
    1957 function get_embedded_media( $type, &$content, $remove = false, $limit = 0 ) { 
     1970function get_embedded_media( $args = array() ) { 
     1971        $defaults = array( 
     1972                'type'                => null, 
     1973                'content'             => &$content, 
     1974                'remove_from_content' => false, 
     1975                'media_count'         => 0  
     1976        ); 
     1977         
     1978        $args = wp_parse_args( $args, $defaults ); 
     1979         
     1980        if ( null == $args['type'] ) 
     1981                return; 
     1982         
    19581983        $html = array(); 
    19591984 
    1960         foreach ( array( $type, 'object', 'embed', 'iframe' ) as $tag ) { 
    1961                 if ( preg_match( '#' . get_tag_regex( $tag ) . '#', $content, $matches ) ) { 
     1985        foreach ( array( $args['type'], 'object', 'embed', 'iframe' ) as $tag ) { 
     1986                if ( preg_match( '#' . get_tag_regex( $tag ) . '#', $args['content'], $matches ) ) { 
    19621987                        $html[] = $matches[0]; 
    1963                         if ( $remove ) 
    1964                                 $content = str_replace( $matches[0], '', $content ); 
     1988                        if ( $args['remove_from_content'] ) 
     1989                                $args['content'] = str_replace( $matches[0], '', $args['content'] ); 
    19651990 
    1966                         if ( $limit > 0 && count( $html ) >= $limit ) 
     1991                        if ( $args['media_count'] > 0 && count( $html ) >= $args['media_count'] ) 
    19671992                                break; 
    19681993                } 
    19691994        } 
    19701995 
    1971         if ( ! empty( $html ) && count( $html ) >= $limit ) 
     1996        if ( ! empty( $html ) && count( $html ) >= $args['media_count'] ) 
    19721997                return $html; 
    19731998 
    1974         $lines = explode( "\n", trim( $content ) ); 
     1999        $lines = explode( "\n", trim( $args['content'] ) ); 
    19752000        $line = trim( array_shift( $lines  ) ); 
    19762001        if ( 0 === stripos( $line, 'http' ) ) { 
    1977                 if ( $remove ) 
    1978                         $content = join( "\n", $lines ); 
     2002                if ( $args['remove_from_content'] ) 
     2003                        $args['content'] = join( "\n", $lines ); 
    19792004 
    19802005                $html[] = $line; 
    19812006        } 
     
    19872012 * 
    19882013 * @since 3.6.0 
    19892014 * 
     2015 * @param array $args (optional) An array of arguments. 
    19902016 * @param string $content A string which might contain audio data. 
    19912017 * @param boolean $html Whether to return HTML or URLs 
    19922018 * @param boolean $remove Whether to remove the found URL from the passed content. 
    19932019 * @return array A list of lists. Each item has a list of HTML or srcs corresponding 
    19942020 *              to an [audio]'s HTML or primary src and specified fallbacks 
    19952021 */ 
    1996 function get_content_audio( &$content, $html = true, $remove = false ) { 
    1997         return get_content_media( 'audio', $content, $html, $remove ); 
     2022function get_content_audio( $args = array() ) { 
     2023        return get_content_media( array_unshift( $args, array( 'type' => 'audio' ) ) ); 
    19982024} 
    19992025 
    20002026/** 
     
    20072033 * @param boolean $remove Whether to remove the found URL from the passed content. 
    20082034 * @return array A list of found HTML audio embeds and possibly a URL by itself 
    20092035 */ 
    2010 function get_embedded_audio( &$content, $remove = false ) { 
    2011         return get_embedded_media( 'audio', $content, $remove ); 
     2036function get_embedded_audio( $args = array() ) { 
     2037        return get_embedded_media( array_unshift( $args, array( 'type' => 'audio' ) ) ); 
    20122038} 
    20132039 
    20142040/** 
     
    20222048 * @return array A list of lists. Each item has a list of HTML or srcs corresponding 
    20232049 *              to a [video]'s HTML or primary src and specified fallbacks 
    20242050 */ 
    2025 function get_content_video( &$content, $html = true, $remove = false ) { 
    2026         return get_content_media( 'video', $content, $html, $remove ); 
     2051function get_content_video( $args = array() ) { 
     2052        return get_content_media( array_unshift( $args, array( 'type' => 'video' ) ) ); 
    20272053} 
    20282054 
    20292055/** 
     
    20362062 * @param boolean $remove Whether to remove the found URL from the passed content. 
    20372063 * @return array A list of found HTML video embeds and possibly a URL by itself 
    20382064 */ 
    2039 function get_embedded_video( &$content, $remove = false ) { 
    2040         return get_embedded_media( 'video', $content, $remove ); 
     2065function get_embedded_video( $args = array() ) { 
     2066        return get_embedded_media( array_unshift( $args, array( 'type' => 'video' ) ) ); 
    20412067} 
    20422068 
    20432069/** 
     
    21022128        // these functions expect a reference, so we should make a copy of post content to avoid changing it 
    21032129        $content = $post->post_content; 
    21042130 
    2105         $htmls = get_content_media( $type, $content, true, true, $limit ); 
     2131        $htmls = get_content_media( array( 
     2132                'type'                => $type, 
     2133                'content'             => $content, 
     2134                'return_html'         => true, 
     2135                'remove_from_content' => true, 
     2136                'media_count'         => $limit 
     2137        ) ); 
     2138 
    21062139        if ( ! empty( $htmls ) ) { 
    21072140                $html = reset( $htmls ); 
    21082141                $post->split_content = $content; 
     
    21102143                return $post->format_content[ $cache_key ]; 
    21112144        } 
    21122145 
    2113         $embeds = get_embedded_media( $type, $content, true, 1 ); 
     2146        $embeds = get_embedded_media( array( 
     2147                'type'                => $type, 
     2148                'content'             => $content, 
     2149                'remove_from_content' => true, 
     2150                'media_count'         => 1 
     2151        ) ); 
     2152         
    21142153        if ( ! empty( $embeds ) ) { 
    21152154                $embed = reset( $embeds ); 
    21162155                $post->split_content = $content; 
     
    22022241 * @param int $limit Optional. The number of image srcs to return 
    22032242 * @return array The found images or srcs 
    22042243 */ 
    2205 function get_content_images( &$content, $html = true, $remove = false, $limit = 0 ) { 
     2244function get_content_images( $args = array() ) { 
     2245        $defaults = array( 
     2246                'content'             => &$content, 
     2247                'return_html'         => true, 
     2248                'remove_from_content' => false, 
     2249                'media_count'         => 0 
     2250        ); 
     2251         
     2252        $args = wp_parse_args( $args, $defaults ); 
     2253 
    22062254        $tags = array(); 
    22072255        $captions = array(); 
    22082256 
    2209         if ( preg_match_all( '/' . get_shortcode_regex() . '/s', $content, $matches, PREG_SET_ORDER ) && ! empty( $matches ) ) { 
     2257        if ( preg_match_all( '/' . get_shortcode_regex() . '/s', $args['content'], $matches, PREG_SET_ORDER ) && ! empty( $matches ) ) { 
    22102258                foreach ( $matches as $shortcode ) { 
    22112259                        if ( 'caption' === $shortcode[2] ) { 
    22122260                                $captions[] = $shortcode[0]; 
    2213                                 if ( $html ) 
     2261                                if ( $args['return_html'] ) 
    22142262                                        $tags[] = do_shortcode( $shortcode[0] ); 
    22152263                        } 
    22162264 
    2217                         if ( $limit > 0 && count( $tags ) >= $limit ) 
     2265                        if ( $args['media_count'] > 0 && count( $tags ) >= $args['media_count'] ) 
    22182266                                break; 
    22192267                } 
    22202268        } 
    22212269 
    22222270        foreach ( array( 'a', 'img' ) as $tag ) { 
    2223                 if ( preg_match_all( '#' . get_tag_regex( $tag ) .  '#i', $content, $matches, PREG_SET_ORDER ) && ! empty( $matches ) ) { 
     2271                if ( preg_match_all( '#' . get_tag_regex( $tag ) .  '#i', $args['content'], $matches, PREG_SET_ORDER ) && ! empty( $matches ) ) { 
    22242272                        foreach ( $matches as $node ) { 
    22252273                                if ( ! strstr( $node[0], '<img ' ) ) 
    22262274                                        continue; 
     
    22312279                                foreach ( $captions as $caption ) { 
    22322280                                        if ( strstr( $caption, $node[0] ) ) { 
    22332281                                                $found = true; 
    2234                                                 if ( $remove ) 
    2235                                                         $content = str_replace( $caption, '', $content, $count ); 
     2282                                                if ( $args['remove_from_content'] ) 
     2283                                                        $args['content'] = str_replace( $caption, '', $args['content'], $count ); 
    22362284                                        } 
    22372285                                } 
    22382286 
    2239                                 if ( $remove ) 
    2240                                         $content = str_replace( $node[0], '', $content, $count ); 
     2287                                if ( $args['remove_from_content'] ) 
     2288                                        $content = str_replace( $node[0], '', $args['content'], $count ); 
    22412289 
    22422290                                if ( ! $found ) 
    22432291                                        $tags[] = $node[0]; 
    22442292 
    2245                                 if ( $limit > 0 && count( $tags ) >= $limit ) 
     2293                                if ( $args['media_count'] > 0 && count( $tags ) >= $args['media_count'] ) 
    22462294                                        break 2; 
    22472295                        } 
    22482296                } 
    22492297        } 
    22502298 
    2251         if ( $html ) 
     2299        if ( $args['return_html'] ) 
    22522300                return $tags; 
    22532301 
    22542302        $srcs = array(); 
     
    22572305                preg_match( '#src=[\'"](.+?)[\'"]#is', $tag, $src ); 
    22582306                if ( ! empty( $src[1] ) ) { 
    22592307                        $srcs[] = $src[1]; 
    2260                         if ( $limit > 0 && count( $srcs ) >= $limit ) 
     2308                        if ( $args['media_count'] > 0 && count( $srcs ) >= $args['media_count'] ) 
    22612309                                break; 
    22622310                } 
    22632311        } 
    22642312 
    2265         return apply_filters( 'content_images', array_values( array_unique( $srcs ) ), $content ); 
     2313        return apply_filters( 'content_images', array_values( array_unique( $srcs ) ), $args['content'] ); 
    22662314} 
    22672315 
    22682316/** 
     
    22752323 * @param boolean $remove Whether to remove the found data from the passed content. 
    22762324 * @return string The found data 
    22772325 */ 
    2278 function get_content_image( &$content, $html = true, $remove = false ) { 
    2279         $srcs = get_content_images( $content, $html, $remove, 1 ); 
     2326function get_content_image( $args = array() ) { 
     2327        $defaults = array( 
     2328                'content' => &$content, 
     2329                'return_html' => true, 
     2330                'remove_from_content' => false 
     2331        ); 
     2332         
     2333        $args = wp_parse_args( $args, $defaults ); 
     2334         
     2335        $srcs = get_content_images( array_merge( $args, array( 'media_count' => 1 ) ) ); 
    22802336        if ( empty( $srcs ) ) 
    22812337                return ''; 
    22822338 
    2283         return apply_filters( 'content_image', reset( $srcs ), $content ); 
     2339        return apply_filters( 'content_image', reset( $srcs ), $args['content'] ); 
    22842340} 
    22852341 
    22862342/** 
     
    22942350 * @param int $limit Optional. The number of galleries to return 
    22952351 * @return array A list of galleries, which in turn are a list of their srcs in order 
    22962352 */ 
    2297 function get_content_galleries( &$content, $html = true, $remove = false, $limit = 0 ) { 
     2353function get_content_galleries( $args = array() ) { 
     2354        $defaults = array( 
     2355                'content'             => &$content, 
     2356                'return_html'         => true, 
     2357                'remove_from_content' => false, 
     2358                'media_count'         => 0 
     2359        ); 
     2360         
     2361        $args = wp_parse_args( $args, $defaults ); 
     2362 
    22982363        $galleries = array(); 
    22992364 
    2300         if ( preg_match_all( '/' . get_shortcode_regex() . '/s', $content, $matches, PREG_SET_ORDER ) && ! empty( $matches ) ) { 
     2365        if ( preg_match_all( '/' . get_shortcode_regex() . '/s', $args['content'], $matches, PREG_SET_ORDER ) && ! empty( $matches ) ) { 
    23012366                foreach ( $matches as $shortcode ) { 
    23022367                        if ( 'gallery' === $shortcode[2] ) { 
    23032368                                $srcs = array(); 
    23042369                                $count = 1; 
    2305                                 if ( $remove ) 
    2306                                         $content = str_replace( $shortcode[0], '', $content, $count ); 
     2370                                if ( $args['remove_from_content'] ) 
     2371                                        $args['content'] = str_replace( $shortcode[0], '', $args['content'], $count ); 
    23072372 
    23082373                                $data = shortcode_parse_atts( $shortcode[3] ); 
    23092374                                $gallery = do_shortcode_tag( $shortcode ); 
    2310                                 if ( $html ) { 
     2375                                if ( $args['return_html'] ) { 
    23112376                                        $galleries[] = $gallery; 
    23122377                                } else { 
    23132378                                        preg_match_all( '#src=[\'"](.+?)[\'"]#is', $gallery, $src, PREG_SET_ORDER ); 
     
    23202385                                        $galleries[] = $data; 
    23212386                                } 
    23222387 
    2323                                 if ( $limit > 0 && count( $galleries ) >= $limit ) 
     2388                                if ( $args['media_count'] > 0 && count( $galleries ) >= $args['media_count'] ) 
    23242389                                        break; 
    23252390                        } 
    23262391                } 
    23272392        } 
    23282393 
    2329         return apply_filters( 'content_galleries', $galleries, $content ); 
     2394        return apply_filters( 'content_galleries', $galleries, $args['content'] ); 
    23302395} 
    23312396 
    23322397/** 
     
    23392404 * @return array A list of arrays, each containing gallery data and srcs parsed 
    23402405 *              from the expanded shortcode 
    23412406 */ 
    2342 function get_post_galleries( $post_id = 0, $html = true ) { 
    2343         $post = empty( $post_id ) ? clone get_post() : get_post( $post_id ); 
     2407function get_post_galleries( $args = array() ) { 
     2408        $defaults = array( 
     2409                'id'          => 0, 
     2410                'return_html' => true 
     2411        ); 
     2412         
     2413        $args = wp_parse_args( $args, $defaults ); 
     2414 
     2415        $post = 0 == $args['id'] ? clone get_post() : get_post( $args['id'] ); 
    23442416        if ( empty( $post ) || ! has_shortcode( $post->post_content, 'gallery' )  ) 
    23452417                return array(); 
    23462418 
    2347         return get_content_galleries( $post->post_content, $html ); 
     2419        $galleries = get_content_galleries( array( 
     2420                'content'     => $post->post_content, 
     2421                'return_html' => $args['return_html'] 
     2422        ) ); 
     2423         
     2424        return $galleries; 
    23482425} 
    23492426 
    23502427/** 
     
    23612438        if ( empty( $post ) || ! has_shortcode( $post->post_content, 'gallery' )  ) 
    23622439                return array(); 
    23632440 
    2364         $data = get_content_galleries( $post->post_content, false ); 
     2441        $data = get_content_galleries( array( 
     2442                'content'     => $post->post_content, 
     2443                'return_html' => false 
     2444        ) ); 
     2445 
    23652446        return wp_list_pluck( $data, 'src' ); 
    23662447} 
    23672448 
     
    23742455 * @param boolean $html Whether to return HTML or data 
    23752456 * @return array Gallery data and srcs parsed from the expanded shortcode 
    23762457 */ 
    2377 function get_post_gallery( $post_id = 0, $html = true ) { 
    2378         $post = empty( $post_id ) ? clone get_post() : get_post( $post_id ); 
     2458function get_post_gallery( $args = array() ) { 
     2459        $defaults = array( 
     2460                'id'          => 0, 
     2461                'return_html' => true 
     2462        ); 
     2463         
     2464        $args = wp_parse_args( $args, $defaults ); 
     2465 
     2466        $post = 0 == $args['id'] ? clone get_post() : get_post( $args['id'] ); 
    23792467        if ( empty( $post ) || ! has_shortcode( $post->post_content, 'gallery' ) ) 
    23802468                return array(); 
    23812469 
    2382         $data = get_content_galleries( $post->post_content, $html, false, 1 ); 
     2470        $data = get_content_galleries( array( 
     2471                'content'             => $post->post_content, 
     2472                'return_html'         => $args['return_html'], 
     2473                'remove_from_content' => false, 
     2474                'media_count'         => 1 
     2475        ) ); 
     2476 
    23832477        return reset( $data ); 
    23842478} 
    23852479 
     
    24012495 * @return array A list of a gallery's image srcs in order 
    24022496 */ 
    24032497function get_post_gallery_images( $post_id = 0 ) { 
    2404         $gallery = get_post_gallery( $post_id, false ); 
     2498        $gallery = get_post_gallery( array( 
     2499                'id'          => $post_id, 
     2500                'return_html' => false 
     2501        ) ); 
     2502 
    24052503        if ( empty( $gallery['src'] ) ) 
    24062504                return array(); 
    24072505 
     
    25292627        } 
    25302628 
    25312629        $content = $post->post_content; 
    2532         $htmls = get_content_images( $content, true, true, 1 ); 
     2630        $htmls = get_content_images( array( 
     2631                'content'             => $content, 
     2632                'return_html'         => true, 
     2633                'remove_from_content' => true, 
     2634                'media_count'         => 1 
     2635        ) ); 
     2636 
    25332637        if ( ! empty( $htmls ) ) { 
    25342638                $html = reset( $htmls ); 
    25352639                $post->split_content = $content; 
  • wp-includes/post-formats.php

     
    353353                                if ( ! preg_match( '#' . $esc_url . '[^/&\?]?#', $content ) ) { 
    354354                                        $url = $meta['link_url']; 
    355355                                } else { 
    356                                         $url = get_content_url( $content, true ); 
     356                                        $url = get_content_url( array( 'content' => $content, 'remove_from_content' => true ) ); 
    357357                                } 
    358358                        } else { 
    359359                                $content_before = $content; 
    360                                 $url = get_content_url( $content, true ); 
     360                                $url = get_content_url( array( 'content' => $content, 'remove_from_content' => true ) ); 
    361361                                if ( $content_before == $content ) 
    362362                                        $url = ''; 
    363363                        } 
     
    529529 * @param boolean $remove Whether to remove the found data from the passed content. 
    530530 * @return array A chat log as structured data 
    531531 */ 
    532 function get_content_chat( &$content, $remove = false ) { 
     532function get_content_chat( $args = array() ) { 
    533533        global $_wp_chat_parsers; 
    534534 
    535         $trimmed = strip_tags( trim( $content ) ); 
     535        $defaults = array( 
     536                'content'             => &$content, 
     537                'remove_from_content' => false 
     538        ); 
     539 
     540        $args = wp_parse_args( $args, $defaults ); 
     541 
     542        $trimmed = strip_tags( trim( $args['content'] ) ); 
    536543        if ( empty( $trimmed ) ) 
    537544                return array(); 
    538545 
     
    620627        if ( ! empty( $stanza ) ) 
    621628                $stanzas[] = $stanza; 
    622629 
    623         if ( $remove ) { 
     630        if ( $args['remove_from_content'] ) { 
    624631                if ( 0 === $found_index ) { 
    625632                        $removed = array_slice( $lines, $last_index ); 
    626633                } else { 
     
    628635                        $after = array_slice( $lines, $last_index + 1 ); 
    629636                        $removed = array_filter( array_merge( $before, $after ) ); 
    630637                } 
    631                 $content = trim( join( "\n", $removed ) ); 
     638                $args['content'] = trim( join( "\n", $removed ) ); 
    632639        } 
    633640 
    634641        return $stanzas; 
     
    639646 * 
    640647 * @since 3.6.0 
    641648 * 
    642  * @param int $id (optional) The post ID. 
     649 * @param int $post_id (optional) The post ID. 
    643650 * @return array The chat content. 
    644651 */ 
    645 function get_the_post_format_chat( $id = 0 ) { 
    646         $post = empty( $id ) ? clone get_post() : get_post( $id ); 
     652function get_the_post_format_chat( $post_id = 0 ) { 
     653        $post = empty( $post_id ) ? clone get_post() : get_post( $post_id ); 
    647654        if ( empty( $post ) ) 
    648655                return array(); 
    649656 
    650         $data = get_content_chat( get_paged_content( $post->post_content ) ); 
     657        $data = get_content_chat( array( 'content' => get_paged_content( $post->post_content ) ) ); 
    651658        if ( empty( $data ) ) 
    652659                return array(); 
    653660 
     
    704711 * @param string $replace (optional) Content to replace the quote content with. 
    705712 * @return string The quote content. 
    706713 */ 
    707 function get_content_quote( &$content, $remove = false, $replace = '' ) { 
    708         if ( empty( $content ) ) 
     714function get_content_quote( $args = array() ) { 
     715        $defaults = array( 
     716                'content' => &$content, 
     717                'remove_from_content' => false, 
     718                'replace_with' => '' 
     719        ); 
     720         
     721        $args = wp_parse_args( $args, $defaults ); 
     722         
     723        if ( empty( $args['content'] ) ) 
    709724                return ''; 
    710725 
    711         if ( ! preg_match( '/<blockquote[^>]*>(.+?)<\/blockquote>/is', $content, $matches ) ) { 
    712                 $quote = $content; 
    713                 if ( $remove || ! empty( $replace ) ) 
    714                         $content = $replace; 
     726        if ( ! preg_match( '/<blockquote[^>]*>(.+?)<\/blockquote>/is', $args['content'], $matches ) ) { 
     727                $quote = $args['content']; 
     728                if ( $args['remove_from_content'] || ! empty( $args['replace_with'] ) ) 
     729                        $args['content'] = $args['replace_with']; 
    715730                return $quote; 
    716731        } 
    717732 
    718         if ( $remove || ! empty( $replace ) ) 
    719                 $content = preg_replace( '/<blockquote[^>]*>(.+?)<\/blockquote>/is', addcslashes( $replace, '\\$' ), $content, 1 ); 
     733        if ( $args['remove_from_content'] || ! empty( $args['replace_with'] ) ) 
     734                $args['content'] = preg_replace( '/<blockquote[^>]*>(.+?)<\/blockquote>/is', addcslashes( $args['replace_with'], '\\$' ), $args['content'], 1 ); 
    720735 
    721736        return $matches[1]; 
    722737} 
     
    739754                return ''; 
    740755 
    741756        $content = $post->post_content; 
    742         $quote = get_content_quote( $content, true ); 
     757        $quote = get_content_quote( array(  
     758                'content'             => $content, 
     759                'remove_from_content' => true 
     760        ) ); 
     761 
    743762        $post->split_content = $content; 
    744763 
    745764        if ( ! empty( $quote ) ) 
     
    778797 * @return string The found URL. 
    779798 */ 
    780799function get_content_url( &$content, $remove = false ) { 
    781         if ( empty( $content ) ) 
     800        $defaults = array( 
     801                'content'             => &$content, 
     802                'remove_from_content' => false 
     803        ); 
     804         
     805        $args = wp_parse_args( $args, $defaults ); 
     806         
     807        if ( empty( $args['content'] ) ) 
    782808                return ''; 
    783809 
    784810        // the content is a URL 
    785         $trimmed = trim( $content ); 
     811        $trimmed = trim( $args['content'] ); 
    786812        if ( 0 === stripos( $trimmed, 'http' ) && ! preg_match( '#\s#', $trimmed ) ) { 
    787                 if ( $remove ) 
    788                         $content = ''; 
     813                if ( $args['remove_from_content'] ) 
     814                        $args['content'] = ''; 
    789815 
    790816                return $trimmed; 
    791817        // the content is HTML so we grab the first href 
    792         } elseif ( preg_match( '/<a\s[^>]*?href=[\'"](.+?)[\'"]/is', $content, $matches ) ) { 
     818        } elseif ( preg_match( '/<a\s[^>]*?href=[\'"](.+?)[\'"]/is', $args['content'], $matches ) ) { 
    793819                return esc_url_raw( $matches[1] ); 
    794820        } 
    795821 
     
    798824 
    799825        // the content is a URL followed by content 
    800826        if ( 0 === stripos( $line, 'http' ) ) { 
    801                 if ( $remove ) 
    802                         $content = trim( join( "\n", $lines ) ); 
     827                if ( $args['remove_from_content'] ) 
     828                        $args['content'] = trim( join( "\n", $lines ) ); 
    803829 
    804830                return esc_url_raw( $line ); 
    805831        } 
     
    845871        } 
    846872 
    847873        if ( ! empty( $post->post_content ) ) 
    848                 return apply_filters( 'get_the_post_format_url', get_content_url( $post->post_content ), $post ); 
     874                return apply_filters( 'get_the_post_format_url', get_content_url( array( 'content' => $post->post_content ) ), $post ); 
    849875} 
    850876 
    851877/**