我正在尝试使用以下方法截断在主页的不同类型的小部件框中显示的帖子标题:
我已将其插入到theme-functions.php
中function customTitle($limit) {
$title = get_the_title($post->ID);
if(strlen($title) > $limit) {
$title = substr($title, 0, $limit) . '...';
}
echo $title;
}
然后我可以用以下代码替换我想要的任何标题:
<?php customTitle(30); ?>
它工作得很好,除了网站语言是简体中文,显然这个截断方法与语言不兼容(我猜它是因为php设置在utf-8中),它确实截断了标题但是它在每个标题的末尾留下一个丑陋的问号。
我想知道是否有人可以帮助我更改我使用的代码,以便它可以与utf8和中文兼容,或者是否还有其他更好的解决方案?
答案 0 :(得分:3)
您可以使用mb_substr按字符(而不是字节)获取子字符串。这样,您最终不会得到破碎的字符,但如果文本使用组合标记或类似字符,您仍可能会得到不完整的字符。 http://us2.php.net/mb_substr