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 posts, portfolio, on your blog, archives, services, custom post types and etc than what will you do?

Well, All you have to do is paste the function into your functions.php file or any specific plugin (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 for Number of Words:

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.

<?php echo excerpt(20); ?>

Update: Using wp_trim_words

WordPress now has a function called wp_trim_words() which will allow you to essentially do the same thing mentioned above and not just for excerpts. You can actually trim any piece of text. You can learn more about the function here.

Basically if you want to trim the excerpt using wp_trim_words you would add something like this:

<?php
$content = get_the_content();
echo wp_trim_words( $content , '20' ); ?>

That would trim your content to 20 words so you can create your own custom excerpt lengths – very useful for posts, custom post types and shortcodes where different ones might look best with different excerpt lengths.

How to add Custom Excerpts to Pages?

By default the custom excerpt feature in WordPress is only available for posts. But sometimes WordPress Themes have already enabled excerpts for pages. In case your WordPress theme does not support excerpts for pages, you could enable this feature by adding this code to the file functions.php of your WordPress theme directory:

function add_excerpts_to_pages() {
     add_post_type_support('page', 'excerpt');
}
add_action('init', 'add_excerpts_to_pages');

As an alternative, you could enable excerpts for pages by using WordPress plugins like for example “Page Excerpt”. You can just install and activate the plugin from your WordPress plugins directory and your WordPress theme should then also automatically support custom excerpts for pages.

If you find this article useful than you can share it on below social links.


Share this post:


Leave a Reply