Changeset 23466 for trunk/wp-includes/formatting.php
- Timestamp:
- 02/21/2013 09:24:34 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-includes/formatting.php
r23450 r23466 1796 1796 $output = $text; 1797 1797 } 1798 return $output;1799 }1800 1801 /**1802 * Return the class for a post format content wrapper1803 *1804 * @since 3.6.01805 *1806 * @param string $format1807 */1808 function get_post_format_content_class( $format ) {1809 return apply_filters( 'post_format_content_class', 'post-format-content', $format );1810 }1811 1812 /**1813 * Ouput the class for a post format content wrapper1814 *1815 * @since 3.6.01816 *1817 * @param string $format1818 */1819 function 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 format1825 *1826 * @since 3.6.01827 *1828 * @param string $content1829 */1830 function 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 'link_class' => '',1847 'image_class' => '',1848 'gallery' => '[gallery]',1849 'audio' => '',1850 'video' => ''1851 );1852 1853 $args = apply_filters( 'post_format_compat', array() );1854 $compat = wp_parse_args( $args, $defaults );1855 1856 $show_content = true;1857 $format_output = '';1858 $meta = get_post_format_meta( $post->ID );1859 1860 switch ( $format ) {1861 case 'link':1862 $compat['tag'] = '';1863 1864 if ( ! empty( $meta['url'] ) ) {1865 $esc_url = preg_quote( $meta['url'], '#' );1866 // Make sure the same URL isn't in the post (modified/extended versions allowed)1867 if ( ! preg_match( '#' . $esc_url . '[^/&\?]#', $content ) ) {1868 $format_output .= sprintf(1869 '<a %shref="%s">%s</a>',1870 empty( $compat['link_class'] ) ? '' : sprintf( 'class="%s" ', esc_attr( $compat['link_class'] ) ),1871 esc_url( $meta['url'] ),1872 empty( $post->post_title ) ? esc_url( $meta['url'] ) : apply_filters( 'the_title', $post->post_title )1873 );1874 }1875 }1876 break;1877 1878 case 'quote':1879 if ( ! empty( $meta['quote'] ) && ! stristr( $content, $meta['quote'] ) ) {1880 $format_output .= sprintf( '<blockquote>%s</blockquote>', $meta['quote'] );1881 if ( ! empty( $meta['quote_source'] ) ) {1882 $format_output .= sprintf(1883 '<cite>%s</cite>',1884 ! empty( $meta['url'] ) ?1885 sprintf( '<a href="%s">%s</a>', esc_url( $meta['url'] ), $meta['quote_source'] ) :1886 $meta['quote_source']1887 );1888 }1889 }1890 break;1891 1892 case 'image':1893 if ( ! empty( $meta['image'] ) ) {1894 $image = is_numeric( $meta['image'] ) ? wp_get_attachment_url( $meta['image'] ) : $meta['image'];1895 1896 if ( ! empty( $image ) && ! stristr( $content, $image ) ) {1897 $image_html = sprintf(1898 '<img %ssrc="%s" alt="" />',1899 empty( $compat['image_class'] ) ? '' : sprintf( 'class="%s" ', esc_attr( $compat['image_class'] ) ),1900 $image1901 );1902 if ( empty( $meta['url'] ) ) {1903 $format_output .= $image_html;1904 } else {1905 $format_output .= sprintf(1906 '<a href="%s">%s</a>',1907 esc_url( $meta['url'] ),1908 $image_html1909 );1910 }1911 }1912 }1913 break;1914 1915 case 'gallery':1916 preg_match_all( '/' . get_shortcode_regex() . '/s', $content, $matches );1917 if ( ! empty( $matches ) && isset( $matches[2] ) ) {1918 foreach ( (array) $matches[2] as $match ) {1919 if ( 'gallery' === $match )1920 break 2; // foreach + case1921 }1922 }1923 1924 if ( empty( $meta['gallery'] ) && ! empty( $compat['gallery'] ) ) {1925 $format_output .= $compat['gallery'];1926 } elseif ( ! empty( $meta['gallery'] ) ) {1927 $format_output .= $meta['gallery'];1928 }1929 break;1930 1931 case 'video':1932 case 'audio':1933 $shortcode_regex = '/' . get_shortcode_regex() . '/s';1934 $matches = preg_match( $shortcode_regex, $content );1935 if ( ! $matches || $format !== $matches[2] ) {1936 if ( empty( $meta['media'] ) && ! empty( $compat[$format] ) ) {1937 $format_output .= $compat[$format];1938 } elseif ( ! empty( $meta['media'] ) ) {1939 // the metadata is a shortcode or an embed code1940 if ( preg_match( $shortcode_regex, $meta['media'] ) || preg_match( '#<[^>]+>#', $meta['media'] ) ) {1941 $format_output .= $meta['media'];1942 } elseif ( ! stristr( $content, $meta['media'] ) ) {1943 // attempt to embed the URL1944 $format_output .= sprintf( '[embed]%s[/embed]', $meta['media'] );1945 }1946 }1947 }1948 break;1949 default:1950 return $content;1951 break;1952 }1953 1954 if ( empty( $format_output ) )1955 return $content;1956 1957 $output = '';1958 1959 if ( ! empty( $content ) && $show_content && 'before' !== $compat['position'] )1960 $output .= $content . PHP_EOL . PHP_EOL;1961 1962 if ( ! empty( $compat['tag'] ) )1963 $output .= sprintf( '<%s class="%s">', tag_escape( $compat['tag'] ), esc_attr( $compat['class'] ) );1964 1965 $output .= $format_output;1966 1967 if ( ! empty( $compat['tag'] ) )1968 $output .= sprintf( '</%s>', tag_escape( $compat['tag'] ) );1969 1970 if ( ! empty( $content ) && $show_content && 'before' === $compat['position'] )1971 $output .= PHP_EOL . PHP_EOL . $content;1972 1973 1798 return $output; 1974 1799 } … … 3532 3357 */ 3533 3358 function wp_slash( $value ) { 3534 if ( is_array( $value ) ) { 3359 if ( is_array( $value ) ) { 3535 3360 foreach ( $value as $k => $v ) { 3536 3361 if ( is_array( $v ) ) { … … 3541 3366 } 3542 3367 } else { 3543 $value = addslashes( $value ); 3544 } 3545 3546 return $value; 3368 $value = addslashes( $value ); 3369 } 3370 3371 return $value; 3547 3372 } 3548 3373 … … 3563 3388 */ 3564 3389 function wp_unslash( $value ) { 3565 return stripslashes_deep( $value ); 3566 } 3390 return stripslashes_deep( $value ); 3391 }
Note: See TracChangeset
for help on using the changeset viewer.