The the_excerpt() function is useful and very popular among theme developers, but it’s far from being perfect. Today’s recipe showcase an improved the_excerpt() function, which display an excerpt which is not longer than a predetermined length and doesn’t cut off in mid-sentence.
The first thing to do is to create the function. Open your functions.php file and paste the code below in it.
// Variable & intelligent excerpt length. function print_excerpt($length) { // Max excerpt length. Length is set in characters global $post; $text = $post->post_excerpt; if ( '' == $text ) { $text = get_the_content(''); $text = apply_filters('the_content', $text); $text = str_replace(']]>', ']]>', $text); } $text = strip_shortcodes($text); // optional, recommended $text = strip_tags($text); // use ' $text = strip_tags($text,'<p><a>'); ' if you want to keep some tags $text = substr($text,0,$length); $excerpt = reverse_strrchr($text, '.', 1); if( $excerpt ) { echo apply_filters('the_excerpt',$excerpt); } else { echo apply_filters('the_excerpt',$text); } } // Returns the portion of haystack which goes until the last occurrence of needle function reverse_strrchr($haystack, $needle, $trail) { return strrpos($haystack, $needle) ? substr($haystack, 0, strrpos($haystack, $needle) + $trail) : false; }
Once done, you can use the print_excerpt() function in your theme files, as shown below:
<?php print_excerpt(50); ?>
Thanks to Sebastian for the function!
The post How to Improved the_excerpt() Function in WordPress! appeared first on WordPress Experts.