Welcome friend. Don't forget to check out Moderno, my latest premium WordPress theme!

Close Notification

Adding Multiple Custom Excerpt Lengths In 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 portfolio then those on your blog archives?

Well, I recently stumbled across a really great function created by bavotasan that allows you to set custom excerpt lengths for multiple instances throughout your theme. All you have to do is paste the function into your functions.php file (or where appropriate – I like to have it on a separate file and use an include function) and then you can call your excerpts and define your length for each call.

Custom Excerpt Function:

function 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 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;
}

How To Use The Function:

Now instead of using “the_excerpt()” in your loops you can use “excerpt($limit)”, where the limit variable is the amount of words you want to show for that excerpt.

Example:

<?php echo excerpt(25); ?>
"If you liked this post please share it!"