Peter put this piece of code together for digital coffee websites. It detects if there is and excerpt or not and adds in a custom read more link to the article.
This code elimates a common issue experienced with excerpts where the more link is always on a new line. The use of variables circumvents this issue.
Step 01:
Add this code to the functions.php file.
<?php
# Custom excerpt more link text
function new_excerpt_more($more) {
global $post;
return ' ... <a href="'. get_permalink($post->ID) . '">' . 'Read the full article.' . '</a>';
}
add_filter('excerpt_more', 'new_excerpt_more');
?>
Also add this function for creating your own custom excerpts when they don’t exist:
<?php
# Custom excerpt for those that are too short
function excerpt($excerpt_length) {
global $post;
$content = $post->post_content;
$words = explode(' ', $content, $excerpt_length + 1);
if(count($words) > $excerpt_length) :
array_pop($words);
array_push($words, ' ');
$content = implode(' ', $words);
endif;
$content = strip_tags($content);
echo $content;
}
?>
Step 02:
Add this code where you want the article excerpt to be displayed. Note that you can change the length of the automatically generated excerpt with the
<?php
//We won't use the standard excerpt which has been commented below/
//We will check for an excerpt and create one if necessary.
//We aslo add article links to the end of the excerpt.
//the_excerpt();
//Here are variables for creating and displaying our excerpts
$myExcerptTitle = get_the_title($post->ID);
$myExcerptLink = get_permalink($post->ID);
if (function_exists('has_excerpt') && has_excerpt())
{
// This is what is shown if there is an excerpt
$myExcerpt = get_the_excerpt();
if ($myExcerpt != '') {
// This is a double check just incase there is no excerpt
}
echo $myExcerpt; echo " ... <a href="$myExcerptLink">Read the full '$myExcerptTitle' article.</a>"; // Outputs the processed value to the page
}
else
{
// This is what is happens if we need to create an excerpt
// We use the excerpt($excerpt_length) function from the functions file
$excerptLength = 40;
excerpt($excerptLength); echo " ... <a href="$myExcerptLink">Read the full '$myExcerptTitle' article.</a>"; // Outputs the processed value to the page
}
?>
Revisions
There are no revisions for this post.
No comments yet.