Make WordPress Core

Ticket #22960: 22960.4.diff

File 22960.4.diff, 5.6 KB (added by wonderboymusic, 11 years ago)
  • wp-includes/functions.php

    diff --git wp-includes/functions.php wp-includes/functions.php
    index b55bca1..836ff7f 100644
    function get_tag_regex( $tag ) { 
    40394039                return;
    40404040
    40414041        return sprintf( '(<%1$s[^>]*(?:/?>$|>[\s\S]*?</%1$s>))', tag_escape( $tag ) );
    4042 }
    4043  No newline at end of file
     4042}
  • wp-includes/media.php

    diff --git wp-includes/media.php wp-includes/media.php
    index cdcdd23..b1da6a7 100644
    function wp_video_embed( $matches, $attr, $url, $rawattr ) { 
    18601860        return apply_filters( 'wp_video_embed', $video, $attr, $url, $rawattr );
    18611861}
    18621862wp_embed_register_handler( 'wp_video_embed', '#https?://.+?\.(' . join( '|', wp_get_video_extensions() ) . ')#i', apply_filters( 'wp_video_embed_handler', 'wp_video_embed' ), 9999 );
     1863
     1864/**
     1865 * Retrieve images attached to the passed post
     1866 *
     1867 * @since 3.6.0
     1868 *
     1869 * @param int $post_id  Post ID
     1870 * @return array Found image attachments
     1871 */
     1872function get_attached_images( $post_id = 0 ) {
     1873        $post = empty( $post_id ) ? get_post() : get_post( $post_id );
     1874        if ( empty( $post ) )
     1875                return array();
     1876
     1877        $children = get_children( array(
     1878                'post_parent' => $post->ID,
     1879                'post_type' => 'attachment',
     1880                'post_mime_type' => 'image',
     1881                'posts_per_page' => -1,
     1882                'orderby' => 'menu_order',
     1883                'order' => 'ASC'
     1884        ) );
     1885
     1886        if ( ! empty( $children ) )
     1887                return $children;
     1888
     1889        return array();
     1890}
     1891
     1892/**
     1893 * Retrieve images attached to the passed post
     1894 *
     1895 * @since 3.6.0
     1896 *
     1897 * @param int $post_id  Post ID
     1898 * @return array Found image attachments
     1899 */
     1900function get_attached_image_srcs( $post_id = 0 ) {
     1901        $children = get_attached_images( $post_id );
     1902        if ( empty( $children ) )
     1903                return array();
     1904
     1905        $srcs = array();
     1906        foreach ( $children as $attachment )
     1907                $srcs[] = wp_get_attachment_url( $attachment->ID );
     1908
     1909        return $srcs;
     1910}
     1911
     1912/**
     1913 * Check the content blob for images
     1914 *
     1915 * @since 3.6.0
     1916 *
     1917 * @param string $content A string which might contain image data.
     1918 * @param boolean $remove Whether to remove the found data from the passed content.
     1919 * @param int $limit Optional. The number of galleries to return
     1920 * @return string The found data
     1921 */
     1922function get_content_images( &$content, $remove = false, $limit = 0 ) {
     1923        $src = '';
     1924        $srcs = array();
     1925        $matches = array();
     1926
     1927        if ( preg_match_all( '#' . get_tag_regex( 'img' ) . '#i', $content, $matches, PREG_SET_ORDER ) && ! empty( $matches ) ) {
     1928                foreach ( $matches as $tag ) {
     1929                        $count = 1;
     1930                        if ( $remove )
     1931                                $content = str_replace( $tag[0], '', $content, $count );
     1932
     1933                        preg_match( '#src=[\'"](.+?)[\'"]#is', $tag[1], $src );
     1934                        if ( ! empty( $src[1] ) ) {
     1935                                $srcs[] = $src[1];
     1936                                if ( $limit > 0 && count( $srcs ) >= $limit )
     1937                                        break;
     1938                        }
     1939                }
     1940        }
     1941
     1942        return array_values( array_unique( $srcs ) );
     1943}
     1944
     1945/**
     1946 * Check the content blob for images and return the first
     1947 *
     1948 * @since 3.6.0
     1949 *
     1950 * @param string $content A string which might contain image data.
     1951 * @param boolean $remove Whether to remove the found data from the passed content.
     1952 * @return string The found data
     1953 */
     1954function get_content_image( &$content, $remove = false ) {
     1955        $srcs = get_content_images( $content, $remove, 1 );
     1956        return reset( $srcs );
     1957}
     1958
     1959/**
     1960 * Check the content blob for galleries and return their image srcs
     1961 *
     1962 * @since 3.6.0
     1963 *
     1964 * @param string $content A string which might contain image data.
     1965 * @param boolean $remove Optional. Whether to remove the found data from the passed content.
     1966 * @param int $limit Optional. The number of galleries to return
     1967 * @return array A list of galleries, which in turn are a list of their srcs in order
     1968 */
     1969function get_content_galleries( &$content, $remove = false, $limit = 0 ) {
     1970        $src = '';
     1971        $galleries = array();
     1972        $matches = array();
     1973
     1974        if ( preg_match_all( '/' . get_shortcode_regex() . '/s', $content, $matches, PREG_SET_ORDER ) && ! empty( $matches ) ) {
     1975                foreach ( $matches as $shortcode ) {
     1976                        if ( 'gallery' === $shortcode[2] ) {
     1977                                $srcs = array();
     1978                                $data = array();
     1979                                $count = 1;
     1980                                if ( $remove )
     1981                                        $content = str_replace( $shortcode[0], '', $content, $count );
     1982
     1983                                $gallery = do_shortcode_tag( $shortcode );
     1984                                preg_match_all( '#src=[\'"](.+?)[\'"]#is', $gallery, $src, PREG_SET_ORDER );
     1985                                if ( ! empty( $src ) ) {
     1986                                        foreach ( $src as $s )
     1987                                                $srcs[] = $s[1];
     1988                                }
     1989                                // the function will eventually return more data about the gallery
     1990                                $data['src'] = array_values( array_unique( $srcs ) );
     1991                                $galleries[] = $data;
     1992                                if ( $limit > 0 && count( $galleries ) >= $limit )
     1993                                        break;
     1994                        }
     1995                }
     1996        }
     1997
     1998        return $galleries;
     1999}
     2000
     2001/**
     2002 * Retrieve galleries from the passed post's content
     2003 *
     2004 * @since 3.6.0
     2005 *
     2006 * @param int $post_id A string which might contain image data.
     2007 * @return array A list of galleries, which in turn are a list of their srcs in order
     2008 */
     2009function get_post_galleries_images( $post_id = 0 ) {
     2010        $post = empty( $post_id ) ? clone get_post() : get_post( $post_id );
     2011        if ( empty( $post ) )
     2012                return array();
     2013
     2014        $data = get_content_galleries( $post->post_content );
     2015        return wp_list_pluck( $data, 'src' );
     2016}
     2017
     2018/**
     2019 * Check the content blob for galleries and return the image srcs for the first found gallery
     2020 *
     2021 * @since 3.6.0
     2022 *
     2023 * @param int $post_id A string which might contain image data.
     2024 * @return array A list of a gallery's image srcs in order
     2025 */
     2026function get_post_gallery_images( $post_id = 0 ) {
     2027        $post = empty( $post_id ) ? clone get_post() : get_post( $post_id );
     2028        if ( empty( $post ) )
     2029                return array();
     2030
     2031        $data = get_content_galleries( $post->post_content, false, 1 );
     2032        return reset( wp_list_pluck( $data, 'src' ) );
     2033}
     2034 No newline at end of file