WordPress.org

Make WordPress Core

Ticket #24202: 24202.2.diff

File 24202.2.diff, 25.8 KB (added by DrewAPicture, 12 months ago)

Second pass with docblocks

  • wp-includes/media.php

     
    18971897/** 
    18981898 * Extract and parse {media type} shortcodes or srcs from the passed content 
    18991899 * 
     1900 * Default arguments: 
     1901 * string  'type'                Type of media: audio or video. 
     1902 * string  'content'             A string that might contain media data. 
     1903 * boolean 'return_html'         Whether to return HTML or URLs. 
     1904 * boolean 'remove_from_content' Whether to remove the found URL from the passed content. 
     1905 * int     'media_count'         The number of medias to return. 
     1906 * 
    19001907 * @since 3.6.0 
    19011908 * 
    1902  * @param string $type Type of media: audio or video 
    1903  * @param string $content A string which might contain media data. 
    1904  * @param boolean $html Whether to return HTML or URLs 
    1905  * @param boolean $remove Whether to remove the found URL from the passed content. 
    1906  * @param int $limit Optional. The number of medias to return 
     1909 * @param array $args An array of arguments. 
    19071910 * @return array A list of parsed shortcodes or extracted srcs 
    19081911 */ 
    1909 function get_content_media( $type, &$content, $html = true, $remove = false, $limit = 0 ) { 
     1912function get_content_media( $args = array() ) { 
     1913        $defaults = array( 
     1914                'type'                => null, 
     1915                'content'             => &$content, 
     1916                'return_html'         => true, 
     1917                'remove_from_content' => false, 
     1918                'media_count'         => 0 
     1919        ); 
     1920         
     1921        $args = wp_parse_args( $args, $defaults ); 
     1922         
     1923        if ( null == $args['type'] ) 
     1924                return; 
     1925 
    19101926        $items = array(); 
    19111927 
    1912         if ( preg_match_all( '/' . get_shortcode_regex() . '/s', $content, $matches, PREG_SET_ORDER ) && ! empty( $matches ) ) { 
     1928        if ( preg_match_all( '/' . get_shortcode_regex() . '/s', $args['content'], $matches, PREG_SET_ORDER ) && ! empty( $matches ) ) { 
    19131929                foreach ( $matches as $shortcode ) { 
    1914                         if ( $type === $shortcode[2] ) { 
     1930                        if ( $args['type'] === $shortcode[2] ) { 
    19151931                                $count = 1; 
    1916                                 if ( $remove ) 
    1917                                         $content =& str_replace( $shortcode[0], '', $content, $count ); 
     1932                                if ( $args['remove_from_content'] ) 
     1933                                        $args['content'] =& str_replace( $shortcode[0], '', $args['content'], $count ); 
    19181934 
    19191935                                $items[] = do_shortcode_tag( $shortcode ); 
    1920                                 if ( $limit > 0 && count( $items ) >= $limit ) 
     1936                                if ( $args['media_count'] > 0 && count( $items ) >= $args['media_count'] ) 
    19211937                                        break; 
    19221938                        } 
    19231939                } 
    19241940        } 
    19251941 
    1926         if ( $html ) 
     1942        if ( $args['return_html'] ) 
    19271943                return $items; 
    19281944 
    19291945        $data = array(); 
     
    19461962 * Check the content blob for an <{media type}>, <object>, <embed>, or <iframe>, in that order 
    19471963 * If no HTML tag is found, check the first line of the post for a URL 
    19481964 * 
     1965 * Default arguments: 
     1966 * string  'type'                Type of media: audio or video. 
     1967 * string  'content'             A string that might contain media data. 
     1968 * boolean 'remove_from_content' Whether to remove the found URL from the passed content. 
     1969 * int     'media_count'         The number of medias to return. 
     1970 * 
    19491971 * @since 3.6.0 
    19501972 * 
    1951  * @param string $type Type of media: audio or video 
    1952  * @param string $content A string which might contain media data. 
    1953  * @param boolean $remove Whether to remove the found URL from the passed content. 
    1954  * @param int $limit Optional. The number of galleries to return 
     1973 * @param array $args (optional) An array of arguments. 
    19551974 * @return array A list of found HTML media embeds and possibly a URL by itself 
    19561975 */ 
    1957 function get_embedded_media( $type, &$content, $remove = false, $limit = 0 ) { 
     1976function get_embedded_media( $args = array() ) { 
     1977        $defaults = array( 
     1978                'type'                => null, 
     1979                'content'             => &$content, 
     1980                'remove_from_content' => false, 
     1981                'media_count'         => 0  
     1982        ); 
     1983         
     1984        $args = wp_parse_args( $args, $defaults ); 
     1985         
     1986        if ( null == $args['type'] ) 
     1987                return; 
     1988         
    19581989        $html = array(); 
    19591990 
    1960         foreach ( array( $type, 'object', 'embed', 'iframe' ) as $tag ) { 
    1961                 if ( preg_match( '#' . get_tag_regex( $tag ) . '#', $content, $matches ) ) { 
     1991        foreach ( array( $args['type'], 'object', 'embed', 'iframe' ) as $tag ) { 
     1992                if ( preg_match( '#' . get_tag_regex( $tag ) . '#', $args['content'], $matches ) ) { 
    19621993                        $html[] = $matches[0]; 
    1963                         if ( $remove ) 
    1964                                 $content = str_replace( $matches[0], '', $content ); 
     1994                        if ( $args['remove_from_content'] ) 
     1995                                $args['content'] = str_replace( $matches[0], '', $args['content'] ); 
    19651996 
    1966                         if ( $limit > 0 && count( $html ) >= $limit ) 
     1997                        if ( $args['media_count'] > 0 && count( $html ) >= $args['media_count'] ) 
    19671998                                break; 
    19681999                } 
    19692000        } 
    19702001 
    1971         if ( ! empty( $html ) && count( $html ) >= $limit ) 
     2002        if ( ! empty( $html ) && count( $html ) >= $args['media_count'] ) 
    19722003                return $html; 
    19732004 
    1974         $lines = explode( "\n", trim( $content ) ); 
     2005        $lines = explode( "\n", trim( $args['content'] ) ); 
    19752006        $line = trim( array_shift( $lines  ) ); 
    19762007        if ( 0 === stripos( $line, 'http' ) ) { 
    1977                 if ( $remove ) 
    1978                         $content = join( "\n", $lines ); 
     2008                if ( $args['remove_from_content'] ) 
     2009                        $args['content'] = join( "\n", $lines ); 
    19792010 
    19802011                $html[] = $line; 
    19812012        } 
     
    19872018 * 
    19882019 * @since 3.6.0 
    19892020 * 
    1990  * @param string $content A string which might contain audio data. 
    1991  * @param boolean $html Whether to return HTML or URLs 
    1992  * @param boolean $remove Whether to remove the found URL from the passed content. 
     2021 * @uses get_content_media() 
     2022 * 
     2023 * @param array $args (optional) An array of arguments. 
    19932024 * @return array A list of lists. Each item has a list of HTML or srcs corresponding 
    19942025 *              to an [audio]'s HTML or primary src and specified fallbacks 
    19952026 */ 
    1996 function get_content_audio( &$content, $html = true, $remove = false ) { 
    1997         return get_content_media( 'audio', $content, $html, $remove ); 
     2027function get_content_audio( $args = array() ) { 
     2028        return get_content_media( array_merge( $args, array( 'type' => 'audio' ) ) ); 
    19982029} 
    19992030 
    20002031/** 
     
    20032034 * 
    20042035 * @since 3.6.0 
    20052036 * 
    2006  * @param string $content A string which might contain audio data. 
    2007  * @param boolean $remove Whether to remove the found URL from the passed content. 
     2037 * @uses get_embedded_media() 
     2038 * 
     2039 * @param array $args (optional) An array of arguments. 
    20082040 * @return array A list of found HTML audio embeds and possibly a URL by itself 
    20092041 */ 
    2010 function get_embedded_audio( &$content, $remove = false ) { 
    2011         return get_embedded_media( 'audio', $content, $remove ); 
     2042function get_embedded_audio( $args = array() ) { 
     2043        return get_embedded_media( array_merge( $args, array( 'type' => 'audio' ) ) ); 
    20122044} 
    20132045 
    20142046/** 
     
    20162048 * 
    20172049 * @since 3.6.0 
    20182050 * 
    2019  * @param string $content A string which might contain video data. 
    2020  * @param boolean $html Whether to return HTML or URLs 
    2021  * @param boolean $remove Whether to remove the found URL from the passed content. 
     2051 * @uses get_content_media() 
     2052 * 
     2053 * @param array $args (optional) An array of arguments. 
    20222054 * @return array A list of lists. Each item has a list of HTML or srcs corresponding 
    20232055 *              to a [video]'s HTML or primary src and specified fallbacks 
    20242056 */ 
    2025 function get_content_video( &$content, $html = true, $remove = false ) { 
    2026         return get_content_media( 'video', $content, $html, $remove ); 
     2057function get_content_video( $args = array() ) { 
     2058        return get_content_media( array_merge( $args, array( 'type' => 'video' ) ) ); 
    20272059} 
    20282060 
    20292061/** 
     
    20322064 * 
    20332065 * @since 3.6.0 
    20342066 * 
    2035  * @param string $content A string which might contain video data. 
    2036  * @param boolean $remove Whether to remove the found URL from the passed content. 
     2067 * @uses get_embedded_media() 
     2068 * 
     2069 * @param array $args (optional) An array of arguments. 
    20372070 * @return array A list of found HTML video embeds and possibly a URL by itself 
    20382071 */ 
    2039 function get_embedded_video( &$content, $remove = false ) { 
    2040         return get_embedded_media( 'video', $content, $remove ); 
     2072function get_embedded_video( $args = array() ) { 
     2073        return get_embedded_media( array_merge( $args, array( 'type' => 'video' ) ) ); 
    20412074} 
    20422075 
    20432076/** 
     
    20462079 * 
    20472080 * @since 3.6.0 
    20482081 * 
     2082 * @uses get_content_media() 
     2083 * @uses get_embedded_media() 
     2084 * 
    20492085 * @param string $type Required. 'audio' or 'video' 
    20502086 * @param WP_Post $post Optional. Used instead of global $post when passed. 
    20512087 * @param int $limit Optional. The number of medias to remove if content is scanned. 
     
    21022138        // these functions expect a reference, so we should make a copy of post content to avoid changing it 
    21032139        $content = $post->post_content; 
    21042140 
    2105         $htmls = get_content_media( $type, $content, true, true, $limit ); 
     2141        $htmls = get_content_media( array( 
     2142                'type'                => $type, 
     2143                'content'             => $content, 
     2144                'return_html'         => true, 
     2145                'remove_from_content' => true, 
     2146                'media_count'         => $limit 
     2147        ) ); 
     2148 
    21062149        if ( ! empty( $htmls ) ) { 
    21072150                $html = reset( $htmls ); 
    21082151                $post->split_content = $content; 
     
    21102153                return $post->format_content[ $cache_key ]; 
    21112154        } 
    21122155 
    2113         $embeds = get_embedded_media( $type, $content, true, 1 ); 
     2156        $embeds = get_embedded_media( array( 
     2157                'type'                => $type, 
     2158                'content'             => $content, 
     2159                'remove_from_content' => true, 
     2160                'media_count'         => 1 
     2161        ) ); 
     2162         
    21142163        if ( ! empty( $embeds ) ) { 
    21152164                $embed = reset( $embeds ); 
    21162165                $post->split_content = $content; 
     
    21942243/** 
    21952244 * Check the content blob for images or image srcs 
    21962245 * 
     2246 * Default arguments: 
     2247 * string  'content'             A string that might contain media data. 
     2248 * boolean 'return_html'         Whether to return HTML or URLs. 
     2249 * boolean 'remove_from_content' Whether to remove the found URL from the passed content. 
     2250 * int     'media_count'         The number of medias to return. 
     2251 * 
    21972252 * @since 3.6.0 
    21982253 * 
    2199  * @param string $content A string which might contain image data. 
    2200  * @param boolean $html Whether to return HTML or URLs 
    2201  * @param boolean $remove Whether to remove the found data from the passed content. 
    2202  * @param int $limit Optional. The number of image srcs to return 
     2254 * @param array $args (optional) An array of arguments. 
    22032255 * @return array The found images or srcs 
    22042256 */ 
    2205 function get_content_images( &$content, $html = true, $remove = false, $limit = 0 ) { 
     2257function get_content_images( $args = array() ) { 
     2258        $defaults = array( 
     2259                'content'             => &$content, 
     2260                'return_html'         => true, 
     2261                'remove_from_content' => false, 
     2262                'media_count'         => 0 
     2263        ); 
     2264         
     2265        $args = wp_parse_args( $args, $defaults ); 
     2266 
    22062267        $tags = array(); 
    22072268        $captions = array(); 
    22082269 
    2209         if ( preg_match_all( '/' . get_shortcode_regex() . '/s', $content, $matches, PREG_SET_ORDER ) && ! empty( $matches ) ) { 
     2270        if ( preg_match_all( '/' . get_shortcode_regex() . '/s', $args['content'], $matches, PREG_SET_ORDER ) && ! empty( $matches ) ) { 
    22102271                foreach ( $matches as $shortcode ) { 
    22112272                        if ( 'caption' === $shortcode[2] ) { 
    22122273                                $captions[] = $shortcode[0]; 
    2213                                 if ( $html ) 
     2274                                if ( $args['return_html'] ) 
    22142275                                        $tags[] = do_shortcode( $shortcode[0] ); 
    22152276                        } 
    22162277 
    2217                         if ( $limit > 0 && count( $tags ) >= $limit ) 
     2278                        if ( $args['media_count'] > 0 && count( $tags ) >= $args['media_count'] ) 
    22182279                                break; 
    22192280                } 
    22202281        } 
    22212282 
    22222283        foreach ( array( 'a', 'img' ) as $tag ) { 
    2223                 if ( preg_match_all( '#' . get_tag_regex( $tag ) .  '#i', $content, $matches, PREG_SET_ORDER ) && ! empty( $matches ) ) { 
     2284                if ( preg_match_all( '#' . get_tag_regex( $tag ) .  '#i', $args['content'], $matches, PREG_SET_ORDER ) && ! empty( $matches ) ) { 
    22242285                        foreach ( $matches as $node ) { 
    22252286                                if ( ! strstr( $node[0], '<img ' ) ) 
    22262287                                        continue; 
     
    22312292                                foreach ( $captions as $caption ) { 
    22322293                                        if ( strstr( $caption, $node[0] ) ) { 
    22332294                                                $found = true; 
    2234                                                 if ( $remove ) 
    2235                                                         $content = str_replace( $caption, '', $content, $count ); 
     2295                                                if ( $args['remove_from_content'] ) 
     2296                                                        $args['content'] = str_replace( $caption, '', $args['content'], $count ); 
    22362297                                        } 
    22372298                                } 
    22382299 
    2239                                 if ( $remove ) 
    2240                                         $content = str_replace( $node[0], '', $content, $count ); 
     2300                                if ( $args['remove_from_content'] ) 
     2301                                        $content = str_replace( $node[0], '', $args['content'], $count ); 
    22412302 
    22422303                                if ( ! $found ) 
    22432304                                        $tags[] = $node[0]; 
    22442305 
    2245                                 if ( $limit > 0 && count( $tags ) >= $limit ) 
     2306                                if ( $args['media_count'] > 0 && count( $tags ) >= $args['media_count'] ) 
    22462307                                        break 2; 
    22472308                        } 
    22482309                } 
    22492310        } 
    22502311 
    2251         if ( $html ) 
     2312        if ( $args['return_html'] ) 
    22522313                return $tags; 
    22532314 
    22542315        $srcs = array(); 
     
    22572318                preg_match( '#src=[\'"](.+?)[\'"]#is', $tag, $src ); 
    22582319                if ( ! empty( $src[1] ) ) { 
    22592320                        $srcs[] = $src[1]; 
    2260                         if ( $limit > 0 && count( $srcs ) >= $limit ) 
     2321                        if ( $args['media_count'] > 0 && count( $srcs ) >= $args['media_count'] ) 
    22612322                                break; 
    22622323                } 
    22632324        } 
    22642325 
    2265         return apply_filters( 'content_images', array_values( array_unique( $srcs ) ), $content ); 
     2326        return apply_filters( 'content_images', array_values( array_unique( $srcs ) ), $args['content'] ); 
    22662327} 
    22672328 
    22682329/** 
    22692330 * Check the content blob for images or srcs and return the first 
    22702331 * 
     2332 * Default arguments: 
     2333 * string  'content'             A string that might contain media data. 
     2334 * boolean 'return_html'         Whether to return HTML or URLs. 
     2335 * boolean 'remove_from_content' Whether to remove the found URL from the passed content. 
     2336 * 
    22712337 * @since 3.6.0 
    22722338 * 
    2273  * @param string $content A string which might contain image data. 
    2274  * @param boolean $html Whether to return HTML or URLs 
    2275  * @param boolean $remove Whether to remove the found data from the passed content. 
     2339 * @uses get_content_images() 
     2340 * 
     2341 * @param array $args (optional) An array of arguments. 
    22762342 * @return string The found data 
    22772343 */ 
    2278 function get_content_image( &$content, $html = true, $remove = false ) { 
    2279         $srcs = get_content_images( $content, $html, $remove, 1 ); 
     2344function get_content_image( $args = array() ) { 
     2345        $defaults = array( 
     2346                'content' => &$content, 
     2347                'return_html' => true, 
     2348                'remove_from_content' => false 
     2349        ); 
     2350         
     2351        $args = wp_parse_args( $args, $defaults ); 
     2352         
     2353        $srcs = get_content_images( array_merge( $args, array( 'media_count' => 1 ) ) ); 
    22802354        if ( empty( $srcs ) ) 
    22812355                return ''; 
    22822356 
    2283         return apply_filters( 'content_image', reset( $srcs ), $content ); 
     2357        return apply_filters( 'content_image', reset( $srcs ), $args['content'] ); 
    22842358} 
    22852359 
    22862360/** 
    22872361 * Check the content blob for galleries and return their image srcs 
    22882362 * 
     2363 * Default arguments: 
     2364 * string  'content'             A string that might contain media data. 
     2365 * boolean 'return_html'         Whether to return HTML or URLs. 
     2366 * boolean 'remove_from_content' Whether to remove the found URL from the passed content. 
     2367 * int     'media_count'         The number of medias to return. 
     2368 * 
    22892369 * @since 3.6.0 
    22902370 * 
    2291  * @param string $content A string which might contain image data. 
    2292  * @param boolean $html Whether to return HTML or data 
    2293  * @param boolean $remove Optional. Whether to remove the found data from the passed content. 
    2294  * @param int $limit Optional. The number of galleries to return 
     2371 * @param array $args (optional) An array of arguments. 
    22952372 * @return array A list of galleries, which in turn are a list of their srcs in order 
    22962373 */ 
    2297 function get_content_galleries( &$content, $html = true, $remove = false, $limit = 0 ) { 
     2374function get_content_galleries( $args = array() ) { 
     2375        $defaults = array( 
     2376                'content'             => &$content, 
     2377                'return_html'         => true, 
     2378                'remove_from_content' => false, 
     2379                'media_count'         => 0 
     2380        ); 
     2381         
     2382        $args = wp_parse_args( $args, $defaults ); 
     2383 
    22982384        $galleries = array(); 
    22992385 
    2300         if ( preg_match_all( '/' . get_shortcode_regex() . '/s', $content, $matches, PREG_SET_ORDER ) && ! empty( $matches ) ) { 
     2386        if ( preg_match_all( '/' . get_shortcode_regex() . '/s', $args['content'], $matches, PREG_SET_ORDER ) && ! empty( $matches ) ) { 
    23012387                foreach ( $matches as $shortcode ) { 
    23022388                        if ( 'gallery' === $shortcode[2] ) { 
    23032389                                $srcs = array(); 
    23042390                                $count = 1; 
    2305                                 if ( $remove ) 
    2306                                         $content = str_replace( $shortcode[0], '', $content, $count ); 
     2391                                if ( $args['remove_from_content'] ) 
     2392                                        $args['content'] = str_replace( $shortcode[0], '', $args['content'], $count ); 
    23072393 
    23082394                                $data = shortcode_parse_atts( $shortcode[3] ); 
    23092395                                $gallery = do_shortcode_tag( $shortcode ); 
    2310                                 if ( $html ) { 
     2396                                if ( $args['return_html'] ) { 
    23112397                                        $galleries[] = $gallery; 
    23122398                                } else { 
    23132399                                        preg_match_all( '#src=[\'"](.+?)[\'"]#is', $gallery, $src, PREG_SET_ORDER ); 
     
    23202406                                        $galleries[] = $data; 
    23212407                                } 
    23222408 
    2323                                 if ( $limit > 0 && count( $galleries ) >= $limit ) 
     2409                                if ( $args['media_count'] > 0 && count( $galleries ) >= $args['media_count'] ) 
    23242410                                        break; 
    23252411                        } 
    23262412                } 
    23272413        } 
    23282414 
    2329         return apply_filters( 'content_galleries', $galleries, $content ); 
     2415        return apply_filters( 'content_galleries', $galleries, $args['content'] ); 
    23302416} 
    23312417 
    23322418/** 
    23332419 * Retrieve galleries from the passed post's content 
    23342420 * 
     2421 * Default arguments: 
     2422 * int     'id'          The post id. 
     2423 * boolean 'return_html' Whether to return HTML or data. 
     2424 *  
    23352425 * @since 3.6.0 
    23362426 * 
    2337  * @param int $post_id Optional. Post ID. 
    2338  * @param boolean $html Whether to return HTML or data 
     2427 * @uses get_content_galleries() 
     2428 * 
     2429 * @param array $args (optional) An array of arguments. 
    23392430 * @return array A list of arrays, each containing gallery data and srcs parsed 
    23402431 *              from the expanded shortcode 
    23412432 */ 
    2342 function get_post_galleries( $post_id = 0, $html = true ) { 
    2343         $post = empty( $post_id ) ? clone get_post() : get_post( $post_id ); 
     2433function get_post_galleries( $args = array() ) { 
     2434        $defaults = array( 
     2435                'id'          => 0, 
     2436                'return_html' => true 
     2437        ); 
     2438         
     2439        $args = wp_parse_args( $args, $defaults ); 
     2440 
     2441        $post = 0 == $args['id'] ? clone get_post() : get_post( $args['id'] ); 
    23442442        if ( empty( $post ) || ! has_shortcode( $post->post_content, 'gallery' )  ) 
    23452443                return array(); 
    23462444 
    2347         return get_content_galleries( $post->post_content, $html ); 
     2445        $galleries = get_content_galleries( array( 
     2446                'content'     => $post->post_content, 
     2447                'return_html' => $args['return_html'] 
     2448        ) ); 
     2449         
     2450        return $galleries; 
    23482451} 
    23492452 
    23502453/** 
     
    23522455 * 
    23532456 * @since 3.6.0 
    23542457 * 
    2355  * @param int $post_id Optional. Post ID. 
     2458 * @uses get_content_galleries() 
     2459 * 
     2460 * @param int $post_id (optional) The post id. 
    23562461 * @return array A list of lists, each containing image srcs parsed 
    23572462 *              from an expanded shortcode 
    23582463 */ 
     
    23612466        if ( empty( $post ) || ! has_shortcode( $post->post_content, 'gallery' )  ) 
    23622467                return array(); 
    23632468 
    2364         $data = get_content_galleries( $post->post_content, false ); 
     2469        $data = get_content_galleries( array( 
     2470                'content'     => $post->post_content, 
     2471                'return_html' => false 
     2472        ) ); 
     2473 
    23652474        return wp_list_pluck( $data, 'src' ); 
    23662475} 
    23672476 
    23682477/** 
    23692478 * Check a specified post's content for gallery and, if present, return the first 
    23702479 * 
     2480 * Default arguments: 
     2481 * int     'id'          The post id. 
     2482 * boolean 'return_html' Whether to return HTML or URLs. 
     2483 * 
    23712484 * @since 3.6.0 
    23722485 * 
    2373  * @param int $post_id Optional. Post ID. 
    2374  * @param boolean $html Whether to return HTML or data 
     2486 * @uses get_content_galleries() 
     2487 * 
     2488 * @param array $args (optional) An array of arguments. 
    23752489 * @return array Gallery data and srcs parsed from the expanded shortcode 
    23762490 */ 
    2377 function get_post_gallery( $post_id = 0, $html = true ) { 
    2378         $post = empty( $post_id ) ? clone get_post() : get_post( $post_id ); 
     2491function get_post_gallery( $args = array() ) { 
     2492        $defaults = array( 
     2493                'id'          => 0, 
     2494                'return_html' => true 
     2495        ); 
     2496         
     2497        $args = wp_parse_args( $args, $defaults ); 
     2498 
     2499        $post = 0 == $args['id'] ? clone get_post() : get_post( $args['id'] ); 
    23792500        if ( empty( $post ) || ! has_shortcode( $post->post_content, 'gallery' ) ) 
    23802501                return array(); 
    23812502 
    2382         $data = get_content_galleries( $post->post_content, $html, false, 1 ); 
     2503        $data = get_content_galleries( array( 
     2504                'content'             => $post->post_content, 
     2505                'return_html'         => $args['return_html'], 
     2506                'remove_from_content' => false, 
     2507                'media_count'         => 1 
     2508        ) ); 
     2509 
    23832510        return reset( $data ); 
    23842511} 
    23852512 
     
    24012528 * @return array A list of a gallery's image srcs in order 
    24022529 */ 
    24032530function get_post_gallery_images( $post_id = 0 ) { 
    2404         $gallery = get_post_gallery( $post_id, false ); 
     2531        $gallery = get_post_gallery( array( 
     2532                'id'          => $post_id, 
     2533                'return_html' => false 
     2534        ) ); 
     2535 
    24052536        if ( empty( $gallery['src'] ) ) 
    24062537                return array(); 
    24072538 
     
    24132544 * 
    24142545 * @since 3.6.0 
    24152546 * 
     2547 * @uses get_content_images() 
     2548 * 
    24162549 * @param string $attached_size If an attached image is found, the size to display it. 
    24172550 * @param WP_Post $post Optional. Used instead of global $post when passed. 
    24182551 */ 
     
    25292662        } 
    25302663 
    25312664        $content = $post->post_content; 
    2532         $htmls = get_content_images( $content, true, true, 1 ); 
     2665        $htmls = get_content_images( array( 
     2666                'content'             => $content, 
     2667                'return_html'         => true, 
     2668                'remove_from_content' => true, 
     2669                'media_count'         => 1 
     2670        ) ); 
     2671 
    25332672        if ( ! empty( $htmls ) ) { 
    25342673                $html = reset( $htmls ); 
    25352674                $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 * @uses get_content_chat() 
     650 * 
     651 * @param int $post_id (optional) The post ID. 
    643652 * @return array The chat content. 
    644653 */ 
    645 function get_the_post_format_chat( $id = 0 ) { 
    646         $post = empty( $id ) ? clone get_post() : get_post( $id ); 
     654function get_the_post_format_chat( $post_id = 0 ) { 
     655        $post = empty( $post_id ) ? clone get_post() : get_post( $post_id ); 
    647656        if ( empty( $post ) ) 
    648657                return array(); 
    649658 
    650         $data = get_content_chat( get_paged_content( $post->post_content ) ); 
     659        $data = get_content_chat( array( 'content' => get_paged_content( $post->post_content ) ) ); 
    651660        if ( empty( $data ) ) 
    652661                return array(); 
    653662 
     
    704713 * @param string $replace (optional) Content to replace the quote content with. 
    705714 * @return string The quote content. 
    706715 */ 
    707 function get_content_quote( &$content, $remove = false, $replace = '' ) { 
    708         if ( empty( $content ) ) 
     716function get_content_quote( $args = array() ) { 
     717        $defaults = array( 
     718                'content' => &$content, 
     719                'remove_from_content' => false, 
     720                'replace_with' => '' 
     721        ); 
     722         
     723        $args = wp_parse_args( $args, $defaults ); 
     724         
     725        if ( empty( $args['content'] ) ) 
    709726                return ''; 
    710727 
    711         if ( ! preg_match( '/<blockquote[^>]*>(.+?)<\/blockquote>/is', $content, $matches ) ) { 
    712                 $quote = $content; 
    713                 if ( $remove || ! empty( $replace ) ) 
    714                         $content = $replace; 
     728        if ( ! preg_match( '/<blockquote[^>]*>(.+?)<\/blockquote>/is', $args['content'], $matches ) ) { 
     729                $quote = $args['content']; 
     730                if ( $args['remove_from_content'] || ! empty( $args['replace_with'] ) ) 
     731                        $args['content'] = $args['replace_with']; 
    715732                return $quote; 
    716733        } 
    717734 
    718         if ( $remove || ! empty( $replace ) ) 
    719                 $content = preg_replace( '/<blockquote[^>]*>(.+?)<\/blockquote>/is', addcslashes( $replace, '\\$' ), $content, 1 ); 
     735        if ( $args['remove_from_content'] || ! empty( $args['replace_with'] ) ) 
     736                $args['content'] = preg_replace( '/<blockquote[^>]*>(.+?)<\/blockquote>/is', addcslashes( $args['replace_with'], '\\$' ), $args['content'], 1 ); 
    720737 
    721738        return $matches[1]; 
    722739} 
     
    739756                return ''; 
    740757 
    741758        $content = $post->post_content; 
    742         $quote = get_content_quote( $content, true ); 
     759        $quote = get_content_quote( array(  
     760                'content'             => $content, 
     761                'remove_from_content' => true 
     762        ) ); 
     763 
    743764        $post->split_content = $content; 
    744765 
    745766        if ( ! empty( $quote ) ) 
     
    778799 * @return string The found URL. 
    779800 */ 
    780801function get_content_url( &$content, $remove = false ) { 
    781         if ( empty( $content ) ) 
     802        $defaults = array( 
     803                'content'             => &$content, 
     804                'remove_from_content' => false 
     805        ); 
     806         
     807        $args = wp_parse_args( $args, $defaults ); 
     808         
     809        if ( empty( $args['content'] ) ) 
    782810                return ''; 
    783811 
    784812        // the content is a URL 
    785         $trimmed = trim( $content ); 
     813        $trimmed = trim( $args['content'] ); 
    786814        if ( 0 === stripos( $trimmed, 'http' ) && ! preg_match( '#\s#', $trimmed ) ) { 
    787                 if ( $remove ) 
    788                         $content = ''; 
     815                if ( $args['remove_from_content'] ) 
     816                        $args['content'] = ''; 
    789817 
    790818                return $trimmed; 
    791819        // the content is HTML so we grab the first href 
    792         } elseif ( preg_match( '/<a\s[^>]*?href=[\'"](.+?)[\'"]/is', $content, $matches ) ) { 
     820        } elseif ( preg_match( '/<a\s[^>]*?href=[\'"](.+?)[\'"]/is', $args['content'], $matches ) ) { 
    793821                return esc_url_raw( $matches[1] ); 
    794822        } 
    795823 
     
    798826 
    799827        // the content is a URL followed by content 
    800828        if ( 0 === stripos( $line, 'http' ) ) { 
    801                 if ( $remove ) 
    802                         $content = trim( join( "\n", $lines ) ); 
     829                if ( $args['remove_from_content'] ) 
     830                        $args['content'] = trim( join( "\n", $lines ) ); 
    803831 
    804832                return esc_url_raw( $line ); 
    805833        } 
     
    845873        } 
    846874 
    847875        if ( ! empty( $post->post_content ) ) 
    848                 return apply_filters( 'get_the_post_format_url', get_content_url( $post->post_content ), $post ); 
     876                return apply_filters( 'get_the_post_format_url', get_content_url( array( 'content' => $post->post_content ) ), $post ); 
    849877} 
    850878 
    851879/**