WordPress.org

Make WordPress Core

Ticket #24202: 24202.4.diff

File 24202.4.diff, 22.9 KB (added by kovshenin, 2 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 {