Saturday, March 19, 2016

Custom Excerpt Function WordPress

By default WordPress excerpts are set to 55 words and there is an excerpt_length filter which allows you to change this default value to your length of choice. But what if you wanted a different excerpt length on your post type or somewhere in page you need create custom function for set limit.


function get_excerpt($limit) {
 $excerpt = explode(' ', get_the_excerpt(), $limit);
  if (count($excerpt)>=$limit) {
   array_pop($excerpt);
   $excerpt = implode(" ",$excerpt).'...';
  } else {
   $excerpt = implode(" ",$excerpt);
  }
 $excerpt = preg_replace('`[[^]]*]`','',$excerpt);
 
 return $excerpt;
}

function get_content($limit) {
 $content = explode(' ', get_the_content(), $limit);
 if (count($content)>=$limit) {
  array_pop($content);
  $content = implode(" ",$content).'...';
 } else {
  $content = implode(" ",$content);
 }
 $content = preg_replace('/[.+]/','', $content);
 $content = apply_filters('the_content', $content);
 $content = str_replace(']]>', ']]>', $content);
 
 return $content;
}