WordPress.org

Make WordPress Core

Ticket #24202: 24202.diff

File 24202.diff, 20.4 KB (added by DrewAPicture, 5 years 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/**