2020.5.13 wordpress 标题限制字数

固定标题文字长度超出部分。。。表示
最开始
function wpbx_excerpt_length( $length ) { return 120; }
add_filter( 'excerpt_length', 'wpbx_excerpt_length' );
<?php the_excerpt();?>
现在
在functions.php加入以下代码:
function excerpttitle($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 excerpttitle(23);?>
23直接代表你想要获取的字数位数
主要看mb_strlen
mb_strlen() — 获取字符串的长度
mixed mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] )
$str 要检查长度的字符串
$encoding,可指定字符编码,如省略则使用内部字符编码
内部编码可以通过mb_internal_encoding()函数得到。
返回值:返回具有encoding编码的字符串str包含的[字符数],多字节的字符被计为 1
例子:
<?php //测试时文件的编码方式要是UTF8 $str='中文a字1符'; echo strlen($str).'<br>';//14 echo mb_strlen($str,'utf8').'<br>';//6 echo mb_strlen($str,'gbk').'<br>';//8 echo mb_strlen($str,'gb2312').'<br>';//10 ?>
在mb_strlen计算时,选定内码为UTF8,则会将一个中文字符当作长度1来计算,所以“中文a字1符”长度是6
另一种方法
function mcg_excerpt( $text, $lenth = 140 ) {
$text = mb_substr( $text, 0, $lenth,"utf-8" );
$tags = array( "<p>", "</p>" );
$myExcerpt = str_replace( $tags, "", $text );
return $myExcerpt; }
add_filter( 'the_excerpt', 'mcg_excerpt' );
function excerpt_read_more_link( $output ) { $output = mb_substr( $output, 0, 40 ,"utf-8" ); return $output . '<span>...</span>'; } add_filter( 'the_excerpt', 'excerpt_read_more_link' );
mb_substr( $str, $start, $length, $encoding )
$text = mb_substr( $text, 0, $lenth );中的0
正数 – 在字符串的指定位置开始
负数 – 在从字符串结尾的指定位置开始
0 – 在字符串中的第一个字符处开始
str_replace() 函数以其他字符替换字符串中的一些字符(区分大小写)
$str,需要截断的字符串
$start,截断开始处,起始处为0
$length,要截取的字数
$encoding,网页编码,如utf-8,GB2312,GBK
参数中,前两个是必需参数,后面2个是可选参数。但加了第四个参数第二个参数就不能少了。
<?php $str='我爱你,中国!我爱你,中国!我爱你,中国!'; echo mb_substr($str,3); //输出会乱码 echo mb_substr($str,3,'utf-8'); //无输出 $len=mb_strlen($str,'utf-8'); //计算出字符串的长度 echo mb_substr($str,3,$len,'utf-8');//正常输出 ?>
(NG) »
相关文章