【问题标题】:Truncating titles (in a different language) in Wordpress在 Wordpress 中截断标题(以不同的语言)
【发布时间】:2014-02-25 19:28:13
【问题描述】:

我正在尝试使用以下方法截断显示在主页的不同类型小部件框中的帖子标题:

我已将其插入到 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和中文兼容,或者是否有其他更好的解决方案?

【问题讨论】:

标签: php wordpress utf-8 truncate


【解决方案1】:

您可以使用 mb_substr 按字符(而不是字节)获取子字符串。这样你就不会在最后得到损坏的字符,但如果文本使用组合标记或类似的,你可能仍然会得到不完整的字符。 http://us2.php.net/mb_substr

【讨论】:

  • 谢谢,这个解决方案似乎符合我的需要,实际上我对 PHP 并不熟悉,所以我通过在我的代码中将 'substr' 替换为 'mb_substr' 进行了疯狂的猜测,并且问号消失了。唯一的缺点是似乎在所有标题上都添加了“...”,但我可以忍受。
猜你喜欢
  • 1970-01-01
  • 2018-06-05
  • 1970-01-01
  • 1970-01-01
  • 2010-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-21
相关资源
最近更新 更多