Short_title character problem

时间:2012-06-17 作者:1907

我使用此代码来缩短标题:

function short_title( $after = \'\', $length ) {
    $mytitle = get_the_title();
    if( strlen( $mytitle ) > $length ) {
        $mytitle = substr( $mytitle, 0, $length );
        echo $mytitle . $after;
    } else echo $mytitle;
}
我称之为:

<?php short_title( \'...\', 40 ); ?> 
剧本很好,但我的性格有问题。See the picture. 你知道怎么解决吗?

2 个回复
最合适的回答,由SO网友:fuxia 整理而成

使用mb_strlen(), not strlen().
与相同mb_substr()substr(): 标题包含多字节字符,但strlen()substr() 不处理字符,它们处理单个字节。

有关缩短字符串的改进函数,请参见this answer.

SO网友:HungryCoder

由于这个词在结尾被打断,这个问题很可能出现。您可以使用以下代码段,它将在word边界处结束

function short_title($after = \'\', $length)
{
  $mytitle = get_the_title();
  if (strlen($mytitle) > $length) {
    $mytitle = substr($mytitle, 0, $length);
    $i = strrpos($mytitle, " ");
    $mytitle = substr($mytitle, 0, $i);
    echo $mytitle . $after;
  } else {
    echo $mytitle;
  }
}

short_title( \'...\', 40 );
参考号:http://code.web-max.ca/truncate_string.php

但是,如果您有/使用多字节支持,那么最好使用mb\\u strlen();mb\\u substr(),mb\\u strpos(),而不是strlen(),substr(),mb\\u strpos()函数。

结束

相关推荐

使用wp_title筛选器设置标题

我想做一些非常简单的事情,但我一直在寻找我需要在WordPress中执行此操作的地方。当我的WordPress网站上有人访问博客文章页面时,我希望博客文章中的标题替换为页面标题。我想我可以用wp\\u title filter hook做到这一点?我想了一下:-add_filter(\'wp_title\', \'filter_pagetitle\'); function filter_pagetitle($title) { $the_post_id = get_the_