wordpress标题截断函数保证不乱码
发表时间:2011-3-17 评论:0 点击 3,297+
当文章的标题过长或者发生换行的现象就很不美观了,虽然可以用CSS来控制文章标题长度,但是也会受到浏览器的限制,那我们就用函数来控制,光有函数是不能的,没有函数是万万不能的。虽然可以使用直接函数
<?php echo mb_strimwidth(get_the_title(), 0, 30,"…") ?>
来控制但是由于截断计算不当,有时会有乱码出现,不好。
但是也可以直接控制
<?php echo cut_str($post->post_title,30); ?>
感觉又不好看
那只有我们来添加自定义函数吧
在主题functions.php文件中添加如下函数
<?php
function title($max_length) {
$title_str = get_the_title();
if (mb_strlen($title_str,'utf-8') > $max_length ) {
$title_str = mb_substr($title_str,0,$max_length,'utf-8').'...';
}
return $title_str;
}
?>
在需要输出标题的地方调用方法如下:
只需要把输出函数替换原来的就行
<?php echo title(18); ?>
例如原来函数是
<a href="<?php the_permalink(); ?>" rel="bookmark" title="详细阅读 <?php the_title_attribute(); ?>"><?php echo cut_str($post->post_title,32); ?></a>
那修改后就应该是这样
<a href="<?php the_permalink(); ?>" rel="bookmark" title="详细阅读 <?php the_title_attribute(); ?>"> <?php echo title(18); ?></a>
18表示最大长度,自己可以修改的。
现在你可以试试不会出现乱码了,呵呵!