WordPress.org

Make WordPress Core

Ticket #24202: 24202.4.diff

File 24202.4.diff, 22.9 KB (added by kovshenin, 5 years ago)
  • wp-includes/post-formats.php

     
    352352                                if ( ! preg_match( '#' . $esc_url . '[^/&\?]?#', $content ) ) {
    353353                                        $url = $meta['link_url'];
    354354                                } else {
    355                                         $url = get_content_url( $content, true );
     355                                        $url = get_content_url( $content, array( 'remove' => true ) );
    356356                                }
    357357                        } else {
    358358                                $content_before = $content;
    359                                 $url = get_content_url( $content, true );
     359                                $url = get_content_url( $content, array( 'remove' => true ) );
    360360                                if ( $content_before == $content )
    361361                                        $url = '';
    362362                        }
     
    417417                        $quote = get_the_post_format_quote( $post );
    418418
    419419                        // Replace the existing quote in-place.
    420                         if ( ! empty( $quote ) )
    421                                 get_content_quote( $content, true, $quote );
     420                        if ( ! empty( $quote ) ) {
     421                                get_content_quote( $content, array(
     422                                        'remove'  => true,
     423                                        'replace' => $quote,
     424                                ) );
     425                        }
    422426                        break;
    423427
    424428                case 'video':
     
    522526 *     )
    523527 * )
    524528 *
     529 * $args contents:
     530 * - remove - Whether to remove the found data from the passed content.
     531 *
    525532 * @since 3.6.0
    526533 *
    527534 * @param string $content A string which might contain chat data, passed by reference.
    528  * @param boolean $remove Whether to remove the found data from the passed content.
     535 * @param array $args (optional) arguments.
    529536 * @return array A chat log as structured data
    530537 */
    531 function get_content_chat( &$content, $remove = false ) {
     538function get_content_chat( &$content, $args = array() ) {
    532539        global $_wp_chat_parsers;
    533540
     541        $defaults = array(
     542                'remove' => false,
     543        );
     544
     545        $args = wp_parse_args( $args, $defaults );
     546
    534547        $trimmed = strip_tags( trim( $content ) );
    535548        if ( empty( $trimmed ) )
    536549                return array();
     
    619632        if ( ! empty( $stanza ) )
    620633                $stanzas[] = $stanza;
    621634
    622         if ( $remove ) {
     635        if ( $args['remove'] ) {
    623636                if ( 0 === $found_index ) {
    624637                        $removed = array_slice( $lines, $last_index );
    625638                } else {
     
    638651 *
    639652 * @since 3.6.0
    640653 *
     654 * @uses get_content_chat()
     655 *
    641656 * @param int $post_id (optional) The post ID.
    642657 * @return array The chat content.
    643658 */
     
    695710 * If $content does not have a blockquote, assume the whole string
    696711 * is the quote.
    697712 *
     713 * $args contents:
     714 * - remove - Whether to remove the quote from the content.
     715 * - replace - Content to replace the quote content with.
     716 *
    698717 * @since 3.6.0
    699718 *
    700719 * @param string $content A string which might contain chat data, passed by reference.
    701  * @param bool $remove (optional) Whether to remove the quote from the content.
    702  * @param string $replace (optional) Content to replace the quote content with.
     720 * @param array $args An optional array of arguments.
    703721 * @return string The quote content.
    704722 */
    705 function get_content_quote( &$content, $remove = false, $replace = '' ) {
     723function get_content_quote( &$content, $args = array() ) {
     724        $defaults = array(
     725                'remove'  => false,
     726                'replace' => '',
     727        );
     728
     729        $args = wp_parse_args( $args, $defaults );
     730
    706731        if ( empty( $content ) )
    707732                return '';
    708733
    709734        if ( ! preg_match( '/<blockquote[^>]*>(.+?)<\/blockquote>/is', $content, $matches ) ) {
    710735                $quote = $content;
    711                 if ( $remove || ! empty( $replace ) )
    712                         $content = $replace;
     736                if ( $args['remove'] || ! empty( $args['replace'] ) )
     737                        $content = $args['replace'];
    713738                return $quote;
    714739        }
    715740
    716         if ( $remove || ! empty( $replace ) )
    717                 $content = preg_replace( '/<blockquote[^>]*>(.+?)<\/blockquote>/is', addcslashes( $replace, '\\$' ), $content, 1 );
     741        if ( $args['remove'] || ! empty( $args['replace'] ) )
     742                $content = preg_replace( '/<blockquote[^>]*>(.+?)<\/blockquote>/is', addcslashes( $args['replace'], '\\$' ), $content, 1 );
    718743
    719744        return $matches[1];
    720745}
     
    738763                return '';
    739764
    740765        $content = $post->post_content;
    741         $quote = get_content_quote( $content, true );
     766        $quote = get_content_quote( $content, array(
     767                'remove' => true,
     768        ) );
     769
    742770        $post->split_content = $content;
    743771
    744772        if ( ! empty( $quote ) )
     
    771799 * Extract a URL from passed content, if possible
    772800 * Checks for a URL on the first line of the content or the first encountered href attribute.
    773801 *
     802 * $args contents:
     803 * - remove - Whether to remove the found URL from the passed content.
     804 *
    774805 * @since 3.6.0
    775806 *
    776807 * @param string $content A string which might contain a URL, passed by reference.
    777  * @param boolean $remove Whether to remove the found URL from the passed content.
     808 * @param array $args An optional array of arguments.
    778809 * @return string The found URL.
    779810 */
    780 function get_content_url( &$content, $remove = false ) {
     811function get_content_url( &$content, $args = array() ) {
     812        $defaults = array(
     813                'remove' => false,
     814        );
     815
     816        $args = wp_parse_args( $args, $defaults );
     817
    781818        if ( empty( $content ) )
    782819                return '';
    783820
    784821        // the content is a URL
    785822        $trimmed = trim( $content );
    786823        if ( 0 === stripos( $trimmed, 'http' ) && ! preg_match( '#\s#', $trimmed ) ) {
    787                 if ( $remove )
     824                if ( $args['content'] )
    788825                        $content = '';
    789826
    790827                return $trimmed;
     
    798835
    799836        // the content is a URL followed by content
    800837        if ( 0 === stripos( $line, 'http' ) ) {
    801                 if ( $remove )
     838                if ( $args['remove'] )
    802839                        $content = trim( join( "\n", $lines ) );
    803840
    804841                return esc_url_raw( $line );
  • wp-includes/media.php

     
    18961896/**
    18971897 * Extract and parse {media type} shortcodes or srcs from the passed content
    18981898 *
     1899 * $args contents:
     1900 * - type - Type of media: audio or video.
     1901 * - return -  Whether to return HTML or URLs.
     1902 * - remove - Whether to remove the found URL from the passed content.
     1903 * - limit - The number of medias to return.
     1904 *
    18991905 * @since 3.6.0
    19001906 *
    1901  * @param string $type Type of media: audio or video
    19021907 * @param string $content A string which might contain media data.
    1903  * @param boolean $html Whether to return HTML or URLs
    1904  * @param boolean $remove Whether to remove the found URL from the passed content.
    1905  * @param int $limit Optional. The number of medias to return
     1908 * @param array $args An array of arguments.
    19061909 * @return array A list of parsed shortcodes or extracted srcs
    19071910 */
    1908 function get_content_media( $type, &$content, $html = true, $remove = false, $limit = 0 ) {
     1911function get_content_media( &$content, $args ) {
     1912        $defaults = array(
     1913                'type'   => null,
     1914                'html'   => true,
     1915                'remove' => false,
     1916                'limit'  => 0,
     1917        );
     1918
     1919        $args = wp_parse_args( $args, $defaults );
     1920
     1921        if ( empty( $args['type'] ) )
     1922                return;
     1923
    19091924        $items = array();
    19101925
    19111926        if ( preg_match_all( '/' . get_shortcode_regex() . '/s', $content, $matches, PREG_SET_ORDER ) && ! empty( $matches ) ) {
    19121927                foreach ( $matches as $shortcode ) {
    1913                         if ( $type === $shortcode[2] ) {
     1928                        if ( $args['type'] === $shortcode[2] ) {
    19141929                                $count = 1;
    1915                                 if ( $remove )
    1916                                         $content =& str_replace( $shortcode[0], '', $content, $count );
     1930                                if ( $args['remove'] )
     1931                                        $content = str_replace( $shortcode[0], '', $content, $count );
    19171932
    19181933                                $items[] = do_shortcode_tag( $shortcode );
    1919                                 if ( $limit > 0 && count( $items ) >= $limit )
     1934                                if ( $args['limit'] > 0 && count( $items ) >= $args['limit'] )
    19201935                                        break;
    19211936                        }
    19221937                }
    19231938        }
    19241939
    1925         if ( $html )
     1940        if ( $args['html'] )
    19261941                return $items;
    19271942
    19281943        $data = array();
     
    19451960 * Check the content blob for an <{media type}>, <object>, <embed>, or <iframe>, in that order
    19461961 * If no HTML tag is found, check the first line of the post for a URL
    19471962 *
     1963 * $args contents:
     1964 * - type - Type of media: audio or video.
     1965 * - remove - Whether to remove the found URL from the passed content.
     1966 * - limit - The number of medias to return.
     1967 *
    19481968 * @since 3.6.0
    19491969 *
    1950  * @param string $type Type of media: audio or video
    19511970 * @param string $content A string which might contain media data.
    1952  * @param boolean $remove Whether to remove the found URL from the passed content.
    1953  * @param int $limit Optional. The number of galleries to return
     1971 * @param array $args An array of arguments.
    19541972 * @return array A list of found HTML media embeds and possibly a URL by itself
    19551973 */
    1956 function get_embedded_media( $type, &$content, $remove = false, $limit = 0 ) {
     1974function get_embedded_media( &$content, $args ) {
     1975        $defaults = array(
     1976                'type'   => null,
     1977                'remove' => false,
     1978                'limit'  => 0,
     1979        );
     1980
     1981        $args = wp_parse_args( $args, $defaults );
     1982
     1983        if ( empty( $args['type'] ) )
     1984                return;
     1985
    19571986        $html = array();
    19581987
    1959         foreach ( array( $type, 'object', 'embed', 'iframe' ) as $tag ) {
     1988        foreach ( array( $args['type'], 'object', 'embed', 'iframe' ) as $tag ) {
    19601989                if ( preg_match( '#' . get_tag_regex( $tag ) . '#', $content, $matches ) ) {
    19611990                        $html[] = $matches[0];
    1962                         if ( $remove )
     1991                        if ( $args['remove'] )
    19631992                                $content = str_replace( $matches[0], '', $content );
    19641993
    1965                         if ( $limit > 0 && count( $html ) >= $limit )
     1994                        if ( $args['limit'] > 0 && count( $html ) >= $args['limit'] )
    19661995                                break;
    19671996                }
    19681997        }
    19691998
    1970         if ( ! empty( $html ) && count( $html ) >= $limit )
     1999        if ( ! empty( $html ) && count( $html ) >= $args['limit'] )
    19712000                return $html;
    19722001
    19732002        $lines = explode( "\n", trim( $content ) );
    19742003        $line = trim( array_shift( $lines  ) );
    19752004        if ( 0 === stripos( $line, 'http' ) ) {
    1976                 if ( $remove )
     2005                if ( $args['remove'] )
    19772006                        $content = join( "\n", $lines );
    19782007
    19792008                $html[] = $line;
     
    19862015 *
    19872016 * @since 3.6.0
    19882017 *
     2018 * @uses get_content_media()
     2019 *
    19892020 * @param string $content A string which might contain audio data.
    1990  * @param boolean $html Whether to return HTML or URLs
    1991  * @param boolean $remove Whether to remove the found URL from the passed content.
     2021 * @param array $args (optional) An array of arguments.
    19922022 * @return array A list of lists. Each item has a list of HTML or srcs corresponding
    19932023 *              to an [audio]'s HTML or primary src and specified fallbacks
    19942024 */
    1995 function get_content_audio( &$content, $html = true, $remove = false ) {
    1996         return get_content_media( 'audio', $content, $html, $remove );
     2025function get_content_audio( &$content, $args = array() ) {
     2026        return get_content_media( $content, array_merge( $args, array( 'type' => 'audio' ) ) );
    19972027}
    19982028
    19992029/**
     
    20022032 *
    20032033 * @since 3.6.0
    20042034 *
     2035 * @uses get_embedded_media()
     2036 *
    20052037 * @param string $content A string which might contain audio data.
    2006  * @param boolean $remove Whether to remove the found URL from the passed content.
     2038 * @param array $args (optional) An array of arguments.
    20072039 * @return array A list of found HTML audio embeds and possibly a URL by itself
    20082040 */
    2009 function get_embedded_audio( &$content, $remove = false ) {
    2010         return get_embedded_media( 'audio', $content, $remove );
     2041function get_embedded_audio( &$content, $args = array() ) {
     2042        return get_embedded_media( $content, array_merge( $args, array( 'type' => 'audio' ) ) );
    20112043}
    20122044
    20132045/**
     
    20152047 *
    20162048 * @since 3.6.0
    20172049 *
     2050 * @uses get_content_media()
     2051 *
    20182052 * @param string $content A string which might contain video data.
    2019  * @param boolean $html Whether to return HTML or URLs
    2020  * @param boolean $remove Whether to remove the found URL from the passed content.
     2053 * @param array $args (optional) An array of arguments.
    20212054 * @return array A list of lists. Each item has a list of HTML or srcs corresponding
    20222055 *              to a [video]'s HTML or primary src and specified fallbacks
    20232056 */
    2024 function get_content_video( &$content, $html = true, $remove = false ) {
    2025         return get_content_media( 'video', $content, $html, $remove );
     2057function get_content_video( &$content, $args = array() ) {
     2058        return get_content_media( $content, array_merge( $args, array( 'type' => 'video' ) ) );
    20262059}
    20272060
    20282061/**
     
    20312064 *
    20322065 * @since 3.6.0
    20332066 *
     2067 * @uses get_embedded_media()
     2068 *
    20342069 * @param string $content A string which might contain video data.
    2035  * @param boolean $remove Whether to remove the found URL from the passed content.
     2070 * @param array $args (optional) An array of arguments.
    20362071 * @return array A list of found HTML video embeds and possibly a URL by itself
    20372072 */
    2038 function get_embedded_video( &$content, $remove = false ) {
    2039         return get_embedded_media( 'video', $content, $remove );
     2073function get_embedded_video( &$content, $args = array() ) {
     2074        return get_embedded_media( $content, array_merge( $args, array( 'type' => 'video' ) ) );
    20402075}
    20412076
    20422077/**
     
    20452080 *
    20462081 * @since 3.6.0
    20472082 *
     2083 * @uses get_content_media()
     2084 * @uses get_embedded_media()
     2085 *
    20482086 * @param string $type Required. 'audio' or 'video'
    20492087 * @param WP_Post $post Optional. Used instead of global $post when passed.
    20502088 * @param int $limit Optional. The number of medias to remove if content is scanned.
     
    21012139        // these functions expect a reference, so we should make a copy of post content to avoid changing it
    21022140        $content = $post->post_content;
    21032141
    2104         $htmls = get_content_media( $type, $content, true, true, $limit );
     2142        $htmls = get_content_media( $content, array(
     2143                'type'   => $type,
     2144                'html'   => true,
     2145                'remove' => true,
     2146                'limit'  => $limit,
     2147        ) );
     2148
    21052149        if ( ! empty( $htmls ) ) {
    21062150                $html = reset( $htmls );
    21072151                $post->split_content = $content;
     
    21092153                return $post->format_content[ $cache_key ];
    21102154        }
    21112155
    2112         $embeds = get_embedded_media( $type, $content, true, 1 );
     2156        $embeds = get_embedded_media( $content, array(
     2157                'type'   => $type,
     2158                'remove' => true,
     2159                'limit'  => 1,
     2160        ) );
     2161
    21132162        if ( ! empty( $embeds ) ) {
    21142163                $embed = reset( $embeds );
    21152164                $post->split_content = $content;
     
    21932242/**
    21942243 * Check the content blob for images or image srcs
    21952244 *
     2245 * $args contents:
     2246 * - html - Whether to return HTML or URLs.
     2247 * - remove - Whether to remove the found URL from the passed content.
     2248 * - limit - The number of medias to return.
     2249 *
    21962250 * @since 3.6.0
    21972251 *
    21982252 * @param string $content A string which might contain image data.
    2199  * @param boolean $html Whether to return HTML or URLs
    2200  * @param boolean $remove Whether to remove the found data from the passed content.
    2201  * @param int $limit Optional. The number of image srcs to return
     2253 * @param array $args (optional) An array of arguments.
    22022254 * @return array The found images or srcs
    22032255 */
    2204 function get_content_images( &$content, $html = true, $remove = false, $limit = 0 ) {
     2256function get_content_images( &$content, $args = array() ) {
     2257        $defaults = array(
     2258                'html'   => true,
     2259                'remove' => false,
     2260                'limit'  => 0,
     2261        );
     2262
     2263        $args = wp_parse_args( $args, $defaults );
     2264
    22052265        $tags = array();
    22062266        $captions = array();
    22072267
     
    22092269                foreach ( $matches as $shortcode ) {
    22102270                        if ( 'caption' === $shortcode[2] ) {
    22112271                                $captions[] = $shortcode[0];
    2212                                 if ( $html )
     2272                                if ( $args['html'] )
    22132273                                        $tags[] = do_shortcode( $shortcode[0] );
    22142274                        }
    22152275
    2216                         if ( $limit > 0 && count( $tags ) >= $limit )
     2276                        if ( $args['limit'] > 0 && count( $tags ) >= $args['limit'] )
    22172277                                break;
    22182278                }
    22192279        }
     
    22302290                                foreach ( $captions as $caption ) {
    22312291                                        if ( strstr( $caption, $node[0] ) ) {
    22322292                                                $found = true;
    2233                                                 if ( $remove )
     2293                                                if ( $args['remove'] )
    22342294                                                        $content = str_replace( $caption, '', $content, $count );
    22352295                                        }
    22362296                                }
    22372297
    2238                                 if ( $remove )
     2298                                if ( $args['remove'] )
    22392299                                        $content = str_replace( $node[0], '', $content, $count );
    22402300
    22412301                                if ( ! $found )
    22422302                                        $tags[] = $node[0];
    22432303
    2244                                 if ( $limit > 0 && count( $tags ) >= $limit )
     2304                                if ( $args['limit'] > 0 && count( $tags ) >= $args['limit'] )
    22452305                                        break 2;
    22462306                        }
    22472307                }
    22482308        }
    22492309
    2250         if ( $html )
     2310        if ( $args['html'] )
    22512311                return $tags;
    22522312
    22532313        $srcs = array();
     
    22562316                preg_match( '#src=([\'"])(.+?)\1#is', $tag, $src );
    22572317                if ( ! empty( $src[2] ) ) {
    22582318                        $srcs[] = $src[2];
    2259                         if ( $limit > 0 && count( $srcs ) >= $limit )
     2319                        if ( $args['limit'] > 0 && count( $srcs ) >= $args['limit'] )
    22602320                                break;
    22612321                }
    22622322        }
     
    22672327/**
    22682328 * Check the content blob for images or srcs and return the first
    22692329 *
     2330 * $args contents:
     2331 * - html - Whether to return HTML or URLs.
     2332 * - remove - Whether to remove the found URL from the passed content.
     2333 *
    22702334 * @since 3.6.0
    22712335 *
     2336 * @uses get_content_images()
     2337 *
    22722338 * @param string $content A string which might contain image data.
    2273  * @param boolean $html Whether to return HTML or URLs
    2274  * @param boolean $remove Whether to remove the found data from the passed content.
     2339 * @param array $args (optional) An array of arguments.
    22752340 * @return string The found data
    22762341 */
    2277 function get_content_image( &$content, $html = true, $remove = false ) {
    2278         $srcs = get_content_images( $content, $html, $remove, 1 );
     2342function get_content_image( &$content, $args = array() ) {
     2343        $srcs = get_content_images( array_merge( $args, array( 'limit' => 1 ) ) );
    22792344        if ( empty( $srcs ) )
    22802345                return '';
    22812346
     
    22852350/**
    22862351 * Check the content blob for galleries and return their image srcs
    22872352 *
     2353 * $args contents:
     2354 * - html - Whether to return HTML or URLs.
     2355 * - remove - Whether to remove the found URL from the passed content.
     2356 * - limit - The number of galleries to return.
     2357 *
    22882358 * @since 3.6.0
    22892359 *
    2290  * @param string $content A string which might contain image data.
    2291  * @param boolean $html Whether to return HTML or data
    2292  * @param boolean $remove Optional. Whether to remove the found data from the passed content.
    2293  * @param int $limit Optional. The number of galleries to return
     2360 * @param array $args (optional) An array of arguments.
    22942361 * @return array A list of galleries, which in turn are a list of their srcs in order
    22952362 */
    2296 function get_content_galleries( &$content, $html = true, $remove = false, $limit = 0 ) {
     2363function get_content_galleries( &$content, $args = array() ) {
     2364        $defaults = array(
     2365                'html'   => true,
     2366                'remove' => false,
     2367                'limit'  => 0,
     2368        );
     2369
     2370        $args = wp_parse_args( $args, $defaults );
     2371
    22972372        $galleries = array();
    22982373
    22992374        if ( preg_match_all( '/' . get_shortcode_regex() . '/s', $content, $matches, PREG_SET_ORDER ) && ! empty( $matches ) ) {
     
    23012376                        if ( 'gallery' === $shortcode[2] ) {
    23022377                                $srcs = array();
    23032378                                $count = 1;
    2304                                 if ( $remove )
     2379                                if ( $args['remove'] )
    23052380                                        $content = str_replace( $shortcode[0], '', $content, $count );
    23062381
    23072382                                $data = shortcode_parse_atts( $shortcode[3] );
    23082383                                $gallery = do_shortcode_tag( $shortcode );
    2309                                 if ( $html ) {
     2384                                if ( $args['html'] ) {
    23102385                                        $galleries[] = $gallery;
    23112386                                } else {
    23122387                                        preg_match_all( '#src=([\'"])(.+?)\1#is', $gallery, $src, PREG_SET_ORDER );
     
    23192394                                        $galleries[] = $data;
    23202395                                }
    23212396
    2322                                 if ( $limit > 0 && count( $galleries ) >= $limit )
     2397                                if ( $args['limit'] > 0 && count( $galleries ) >= $args['limit'] )
    23232398                                        break;
    23242399                        }
    23252400                }
     
    23312406/**
    23322407 * Retrieve galleries from the passed post's content
    23332408 *
     2409 * $args contents:
     2410 * - post_id - The post id.
     2411 * - html - Whether to return HTML or data.
     2412 *
    23342413 * @since 3.6.0
    23352414 *
    2336  * @param int $post_id Optional. Post ID.
    2337  * @param boolean $html Whether to return HTML or data
     2415 * @uses get_content_galleries()
     2416 *
     2417 * @param array $args (optional) An array of arguments.
    23382418 * @return array A list of arrays, each containing gallery data and srcs parsed
    23392419 *              from the expanded shortcode
    23402420 */
    2341 function get_post_galleries( $post_id = 0, $html = true ) {
    2342         if ( ! $post = get_post( $post_id ) )
     2421function get_post_galleries( $args = array() ) {
     2422        $defaults = array(
     2423                'post_id' => 0,
     2424                'html'    => true,
     2425        );
     2426
     2427        $args = wp_parse_args( $args, $defaults );
     2428
     2429        if ( ! $post = get_post( $args['post_id'] ) )
    23432430                return array();
    23442431
    23452432        if ( ! has_shortcode( $post->post_content, 'gallery' )  )
    23462433                return array();
    23472434
    2348         return get_content_galleries( $post->post_content, $html );
     2435        return get_content_galleries( $post->post_content, array( 'html' => $args['html'] ) );
    23492436}
    23502437
    23512438/**
     
    23532440 *
    23542441 * @since 3.6.0
    23552442 *
    2356  * @param int $post_id Optional. Post ID.
     2443 * @uses get_content_galleries()
     2444 *
     2445 * @param int $post_id (optional) The post id.
    23572446 * @return array A list of lists, each containing image srcs parsed
    23582447 *              from an expanded shortcode
    23592448 */
     
    23642453        if ( ! has_shortcode( $post->post_content, 'gallery' )  )
    23652454                return array();
    23662455
    2367         $data = get_content_galleries( $post->post_content, false );
     2456        $data = get_content_galleries( $post->post_content, array( 'html' => false ) );
    23682457        return wp_list_pluck( $data, 'src' );
    23692458}
    23702459
    23712460/**
    23722461 * Check a specified post's content for gallery and, if present, return the first
    23732462 *
     2463 * $args contents:
     2464 * - post_id - The post id.
     2465 * - html - Whether to return HTML or URLs.
     2466 *
    23742467 * @since 3.6.0
    23752468 *
    2376  * @param int $post_id Optional. Post ID.
    2377  * @param boolean $html Whether to return HTML or data
     2469 * @uses get_content_galleries()
     2470 *
     2471 * @param array $args (optional) An array of arguments.
    23782472 * @return array Gallery data and srcs parsed from the expanded shortcode
    23792473 */
    2380 function get_post_gallery( $post_id = 0, $html = true ) {
    2381         if ( ! $post = get_post( $post_id ) )
     2474function get_post_gallery( $args = array() ) {
     2475        $defaults = array(
     2476                'post_id' => 0,
     2477                'html'    => true,
     2478        );
     2479
     2480        $args = wp_parse_args( $args, $defaults );
     2481
     2482        if ( ! $post = get_post( $args['post_id'] ) )
    23822483                return array();
    23832484
    23842485        if ( ! has_shortcode( $post->post_content, 'gallery' ) )
    23852486                return array();
    23862487
    2387         $data = get_content_galleries( $post->post_content, $html, false, 1 );
     2488        $data = get_content_galleries( $post->post_content, array(
     2489                'html' => $args['html'],
     2490                'limit' => 1,
     2491        ) );
     2492
    23882493        return reset( $data );
    23892494}
    23902495
     
    24062511 * @return array A list of a gallery's image srcs in order
    24072512 */
    24082513function get_post_gallery_images( $post_id = 0 ) {
    2409         $gallery = get_post_gallery( $post_id, false );
     2514        $gallery = get_post_gallery( array(
     2515                'post_id' => $post_id,
     2516                'html'    => false,
     2517        ) );
     2518
    24102519        if ( empty( $gallery['src'] ) )
    24112520                return array();
    24122521
     
    24182527 *
    24192528 * @since 3.6.0
    24202529 *
     2530 * @uses get_content_images()
     2531 *
    24212532 * @param string $attached_size If an attached image is found, the size to display it.
    24222533 * @param WP_Post $post Optional. Used instead of global $post when passed.
    24232534 */
     
    25542665        }
    25552666
    25562667        $content = $post->post_content;
    2557         $htmls = get_content_images( $content, true, true, 1 );
     2668        $htmls = get_content_images( $content, array(
     2669                'html'   => true,
     2670                'remove' => true,
     2671                'limit'  => 1,
     2672        ) );
     2673
    25582674        if ( ! empty( $htmls ) ) {
    25592675                $html = reset( $htmls );
    25602676
  • wp-content/themes/twentyeleven/functions.php

     
    641641        $images = array();
    642642
    643643        if ( function_exists( 'get_post_galleries' ) ) {
    644                 $galleries = get_post_galleries( get_the_ID(), false );
     644                $galleries = get_post_galleries( array( 'post_id' => get_the_ID(), 'html' => false ) );
    645645                if ( isset( $galleries[0]['ids'] ) )
    646646                        $images = explode( ',', $galleries[0]['ids'] );
    647647        } else {
  • wp-content/themes/twentyten/functions.php

     
    529529        $images = array();
    530530
    531531        if ( function_exists( 'get_post_galleries' ) ) {
    532                 $galleries = get_post_galleries( get_the_ID(), false );
     532                $galleries = get_post_galleries( array( 'post_id' => get_the_ID(), 'html' => false ) );
    533533                if ( isset( $galleries[0]['ids'] ) )
    534534                        $images = explode( ',', $galleries[0]['ids'] );
    535535        } else {