所以我使用这个过滤器来缩短标题:
function the_titlesmall($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_titlesmall\', $before . $title . $after, $before, $after);
if ( $echo )
echo $title;
else
return $title;
}
}
在我的模板中:
<?php the_titlesmall(\'\', \'...\', true, \'50\') ?>
这很有魅力。
但是,此筛选器会添加“…”对于每个帖子标题,即使帖子标题少于50个字符并且看起来很奇怪。我怎样才能只添加“…”超过50个字符的标题?
非常感谢!
最合适的回答,由SO网友:czerspalace 整理而成
试试这个。首先检查原始字符串长度是否小于或等于传入长度,如果是,则忽略$after
参数:
function the_titlesmall($before = \'\', $after = \'\', $echo = true, $length = false) { $title = get_the_title();
if( strlen($title) <= $length )
$after = \'\';
if ( $length && is_numeric($length) ) {
$title = substr( $title, 0, $length );
}
if ( strlen($title)> 0 ) {
$title = apply_filters(\'the_titlesmall\', $before . $title . $after, $before, $after);
if ( $echo )
echo $title;
else
return $title;
}
}