I have a wordpress site with titles, and if the title has more than 50 characters I need to add an ellipsis (...) at the end of the title and stop the title at 50 characters. Be
Add this to your "functions.php" file in your theme folder....
function the_title_excerpt($before = '', $after = '', $echo = true, $length = false)
{
$title = get_the_title();
if ( $length && is_numeric($length) ) {
$title = substr( $title, 0, $length );
}
if ( strlen($title)> 0 ) {
$title = apply_filters('the_title_excerpt', $before . $title . $after, $before, $after);
if ( $echo )
echo $title;
else
return $title;
}
}
then call the title like as follows
<?php the_title_excerpt('', '...', true, '50'); ?>
Single Code, 100% working
PHP Function mb_strimwidth() | Wordpress Function get_the_title()
<?php
echo mb_strimwidth( get_the_title(), 0, 100, '...' );
?>
<?php
$title = the_title('','',false);
if(strlen($title) > 60):
echo trim(substr($title, 0, 65)).'...';
else:
echo $title;
endif;
?>
The mb_strimwidth function does exactly that.
echo mb_strimwidth(get_the_title(), 0, 50, '...');
Take the_title()
out of quotes when using the strlen()
function.
You're checking the length of the string "the_title()"
. Remove the quotes, and it will probably work (I'm not 100% sure of the difference between the_title() and get_the_title(), as I haven't used Wordpress in a while -- you might have to switch that around too):
<?php if (strlen(the_title()) > 50) { ?>
<?php the_title(); ?>
<?php } if (strlen(the_title()) < 50) { ?>
<?php echo substr(get_the_title(), 0, 50); ?>...
<?php } ?>
or maybe
<?php if (strlen(get_the_title()) > 50) { ?>
<?php the_title(); ?>
<?php } if (strlen(get_the_title()) < 50) { ?>
<?php echo substr(get_the_title(), 0, 50); ?>...
<?php } ?>