WordPress.org

Make WordPress Core

Ticket #23347: 23347.4.diff

File 23347.4.diff, 6.9 KB (added by beaulebens, 14 months ago)

Removed the chat fallback entirely, until we can decide what to do with it. Also bailed earlier in the function for aside/status formats.

  • wp-includes/default-filters.php

     
    132132add_filter( 'the_title', 'convert_chars' ); 
    133133add_filter( 'the_title', 'trim'          ); 
    134134 
    135 add_filter( 'the_content', 'wptexturize'        ); 
    136 add_filter( 'the_content', 'convert_smilies'    ); 
    137 add_filter( 'the_content', 'convert_chars'      ); 
    138 add_filter( 'the_content', 'wpautop'            ); 
    139 add_filter( 'the_content', 'shortcode_unautop'  ); 
    140 add_filter( 'the_content', 'prepend_attachment' ); 
     135add_filter( 'the_content', 'post_formats_compat', 7 ); 
     136add_filter( 'the_content', 'wptexturize'            ); 
     137add_filter( 'the_content', 'convert_smilies'        ); 
     138add_filter( 'the_content', 'convert_chars'          ); 
     139add_filter( 'the_content', 'wpautop'                ); 
     140add_filter( 'the_content', 'shortcode_unautop'      ); 
     141add_filter( 'the_content', 'prepend_attachment'     ); 
    141142 
    142143add_filter( 'the_excerpt',     'wptexturize'      ); 
    143144add_filter( 'the_excerpt',     'convert_smilies'  ); 
  • wp-includes/formatting.php

     
    17991799} 
    18001800 
    18011801/** 
     1802 * Return the class for a post format content wrapper 
     1803 * 
     1804 * @since 3.6.0 
     1805 * 
     1806 * @param string $format 
     1807 */ 
     1808function get_post_format_content_class( $format ) { 
     1809        return apply_filters( 'post_format_content_class', $format . '-post-format-content', $format ); 
     1810} 
     1811 
     1812/** 
     1813 * Ouput the class for a post format content wrapper 
     1814 * 
     1815 * @since 3.6.0 
     1816 * 
     1817 * @param string $format 
     1818 */ 
     1819function post_format_content_class( $format ) { 
     1820        echo get_post_format_content_class( $format ); 
     1821} 
     1822 
     1823/** 
     1824 * Provide fallback behavior for Posts that have associated post format 
     1825 * 
     1826 * @since 3.6.0 
     1827 * 
     1828 * @param string $content 
     1829 */ 
     1830function post_formats_compat( $content, $id = 0 ) { 
     1831        $post = empty( $id ) ? get_post() : get_post( $id ); 
     1832        if ( empty( $post ) ) 
     1833                return $content; 
     1834 
     1835        $format = get_post_format( $post ); 
     1836        if ( empty( $format ) || in_array( $format, array( 'status', 'aside', 'chat' ) ) ) 
     1837                return $content; 
     1838 
     1839        if ( current_theme_supports( 'post-formats', $format ) ) 
     1840                return $content; 
     1841 
     1842        $defaults = array( 
     1843                'position' => 'after', 
     1844                'tag' => 'div', 
     1845                'class' => get_post_format_content_class( $format ), 
     1846                'chat_tag' => 'span', 
     1847                'chat_tag_class' => 'chat-line', 
     1848                'chat_delimiter' => PHP_EOL, 
     1849                'link_class' => '', 
     1850                'image_class' => '', 
     1851                'gallery' => '[gallery]', 
     1852                'audio' => '[audio]', 
     1853                'video' => '[video]' 
     1854        ); 
     1855 
     1856        $args = apply_filters( 'post_format_compat', array() ); 
     1857        $compat = wp_parse_args( $args, $defaults ); 
     1858 
     1859        $show_content = true; 
     1860        $format_output = ''; 
     1861        $meta = get_post_format_meta( $post->ID ); 
     1862 
     1863        switch ( $format ) { 
     1864        case 'link': 
     1865                $compat['tag'] = ''; 
     1866 
     1867                if ( ! empty( $meta['url'] ) ) { 
     1868                        $esc_url = preg_quote( $meta['url'], '#' ); 
     1869                        // Make sure the same URL isn't in the post (modified/extended versions allowed) 
     1870                        if ( ! preg_match( '#' . $esc_url . '[^/&\?]#', $content ) ) { 
     1871                                $format_output .= sprintf( 
     1872                                        '<a %shref="%s">%s</a>', 
     1873                                        empty( $compat['link_class'] ) ? '' : sprintf( 'class="%s" ', $compat['link_class'] ), 
     1874                                        esc_url( $meta['url'] ), 
     1875                                        empty( $post->post_title ) ? esc_url( $meta['url'] ) : apply_filters( 'the_title', $post->post_title ) 
     1876                                ); 
     1877                        } 
     1878                } 
     1879                break; 
     1880 
     1881        case 'quote': 
     1882                if ( ! empty( $meta['quote'] ) && ! stristr( $content, $meta['quote'] ) ) { 
     1883                        $format_output .= sprintf( '<blockquote>%s</blockquote>', $meta['quote'] ); 
     1884                        if ( ! empty( $meta['quote_source'] ) ) { 
     1885                                $format_output .= sprintf( 
     1886                                        '<cite>%s</cite>', 
     1887                                        ! empty( $meta['url'] ) ? 
     1888                                                sprintf( '<a href="%s">%s</a>', esc_url( $meta['url'] ), $meta['quote_source'] ) : 
     1889                                                $meta['quote_source'] 
     1890                                ); 
     1891                        } 
     1892                } 
     1893                break; 
     1894 
     1895        case 'image': 
     1896                if ( ! empty( $meta['image'] ) ) { 
     1897                        $image = is_numeric( $meta['image'] ) ? wp_get_attachment_url( $meta['image'] ) : $meta['image']; 
     1898 
     1899                        if ( ! empty( $image ) && ! stristr( $content, $image ) ) { 
     1900                                $image_html = sprintf( 
     1901                                        '<img %ssrc="%s" alt="" />', 
     1902                                        empty( $compat['image_class'] ) ? '' : sprintf( 'class="%s" ', $compat['image_class'] ), 
     1903                                        $image 
     1904                                ); 
     1905                                if ( empty( $meta['url'] ) ) { 
     1906                                        $format_output .= $image_html; 
     1907                                } else { 
     1908                                        $format_output .= sprintf( 
     1909                                                '<a href="%s">%s</a>', 
     1910                                                esc_url( $meta['url'] ), 
     1911                                                $image_html 
     1912                                        ); 
     1913                                } 
     1914                        } 
     1915                } 
     1916                break; 
     1917 
     1918        case 'gallery': 
     1919                preg_match_all( '/' . get_shortcode_regex() . '/s', $content, $matches ); 
     1920                if ( ! empty( $matches ) && isset( $matches[2] ) ) { 
     1921                        foreach ( (array) $matches[2] as $match ) { 
     1922                                if ( 'gallery' === $match ) 
     1923                                        break 2; // foreach + case 
     1924                        } 
     1925                } 
     1926 
     1927                if ( empty( $meta['gallery'] ) && ! empty( $compat['gallery'] ) ) { 
     1928                        $format_output .= $compat['gallery']; 
     1929                } elseif ( ! empty( $meta['gallery'] ) ) { 
     1930                        $format_output .= $meta['gallery']; 
     1931                } 
     1932                break; 
     1933 
     1934        case 'video': 
     1935        case 'audio': 
     1936                $shortcode_regex = '/' . get_shortcode_regex() . '/s'; 
     1937                $matches = preg_match( $shortcode_regex, $content ); 
     1938                if ( ! $matches || $format !== $matches[2] ) { 
     1939                        if ( empty( $meta['media'] ) && ! empty( $compat[$format] ) ) { 
     1940                                $format_output .= $compat[$format]; 
     1941                        } elseif ( ! empty( $meta['media'] ) ) { 
     1942                                // the metadata is a shortcode or an embed code 
     1943                                if ( preg_match( $shortcode_regex, $meta['media'] ) || preg_match( '#<[^>]+>#', $meta['media'] ) ) { 
     1944                                        $format_output .= $meta['media']; 
     1945                                } elseif ( ! stristr( $content, $meta['media'] ) ) { 
     1946                                        $mime_type = wp_check_filetype( $meta['media'] ); 
     1947                                        // URL that can be shortcode'd 
     1948                                        if ( ! empty( $mime_type['type'] ) 
     1949                                                && ( ( 'video' === $format && 'video/mp4' === $mime_type['type'] ) 
     1950                                                        || ( 'audio' === $format && 'audio/mpeg' === $mime_type['type'] ) ) ) { 
     1951                                                $format_output .= sprintf( '[%s src="%s"]', $format, esc_url( $meta['media'] ) ); 
     1952                                        // URL that isn't embeddable outputs string 
     1953                                        } else { 
     1954                                                $format_output .= sprintf( '[embed]%s[/embed]', $meta['media'] ); 
     1955                                        } 
     1956                                } 
     1957                        } 
     1958                } 
     1959                break; 
     1960        default: 
     1961                return $content; 
     1962                break; 
     1963        } 
     1964 
     1965        if ( empty( $format_output ) ) 
     1966                return $content; 
     1967 
     1968        $output = ''; 
     1969        if ( ! empty( $compat['tag'] ) ) 
     1970                $output .= sprintf( '<%s class="%s">', $compat['tag'], $compat['class'] ); 
     1971 
     1972        if ( ! empty( $content ) && $show_content && 'before' !== $compat['position'] ) 
     1973                $output .= $content . PHP_EOL . PHP_EOL; 
     1974 
     1975        $output .= $format_output; 
     1976 
     1977        if ( ! empty( $content ) && $show_content && 'before' === $compat['position'] ) 
     1978                $output .= PHP_EOL . PHP_EOL . $content; 
     1979 
     1980        if ( ! empty( $compat['tag'] ) ) 
     1981                $output .= sprintf( '</%s>', $compat['tag'] );; 
     1982 
     1983        return $output; 
     1984} 
     1985 
     1986/** 
    18021987 * Verifies that an email is valid. 
    18031988 * 
    18041989 * Does not grok i18n domains. Not RFC compliant.