Make WordPress Core

Ticket #17030: wp_make_excerpt.diff

File wp_make_excerpt.diff, 2.0 KB (added by filosofo, 14 years ago)
  • wp-includes/formatting.php

     
    18421842}
    18431843
    18441844/**
     1845 * Creates an excerpt from the given text.
     1846 *
     1847 * @since 3.2
     1848 *
     1849 * @param string $text The text from which to make an excerpt.
     1850 * @param int $excerpt_length The max number of words for the excerpt.
     1851 * @param string $excerpt_more The text to use for the more ellipses.
     1852 * @return string The excerpt.
     1853 */
     1854function wp_make_excerpt( $text, $excerpt_length = 55, $excerpt_more = ' [...]' ) {
     1855        $text = strip_shortcodes( $text );
     1856        $text = apply_filters('the_content', $text);
     1857        $text = str_replace(']]>', ']]>', $text);
     1858        $text = strip_tags($text);
     1859        $words = preg_split("/[\n\r\t ]+/", $text, $excerpt_length + 1, PREG_SPLIT_NO_EMPTY);
     1860        if ( count($words) > $excerpt_length ) {
     1861                array_pop($words);
     1862                $text = implode(' ', $words);
     1863                $text = $text . $excerpt_more;
     1864        } else {
     1865                $text = implode(' ', $words);
     1866        }
     1867
     1868        return $text;
     1869}
     1870
     1871/**
    18451872 * Generates an excerpt from the content, if needed.
    18461873 *
    18471874 * The excerpt word amount will be 55 words and if the amount is greater than
     
    18601887        $raw_excerpt = $text;
    18611888        if ( '' == $text ) {
    18621889                $text = get_the_content('');
    1863 
    1864                 $text = strip_shortcodes( $text );
    1865 
    1866                 $text = apply_filters('the_content', $text);
    1867                 $text = str_replace(']]>', ']]>', $text);
    1868                 $text = strip_tags($text);
     1890               
    18691891                $excerpt_length = apply_filters('excerpt_length', 55);
    18701892                $excerpt_more = apply_filters('excerpt_more', ' ' . '[...]');
    1871                 $words = preg_split("/[\n\r\t ]+/", $text, $excerpt_length + 1, PREG_SPLIT_NO_EMPTY);
    1872                 if ( count($words) > $excerpt_length ) {
    1873                         array_pop($words);
    1874                         $text = implode(' ', $words);
    1875                         $text = $text . $excerpt_more;
    1876                 } else {
    1877                         $text = implode(' ', $words);
    1878                 }
     1893                $text = wp_make_excerpt( $text, $excerpt_length, $excerpt_more );
    18791894        }
    18801895        return apply_filters('wp_trim_excerpt', $text, $raw_excerpt);
    18811896}