在制作WordPress主题时,尤其是首页和类别页面时,我们需要控制文章的摘要和标题中的字数,以使整体布局更合理,更美观。 今天,与你分享几种截取WordPress文章摘要内容和标题字数的方法。
一、使用WordPress内置函数wp_trim_words()进行截取
WordPress的内置wp_trim_words()函数专门用于限定字数的内容,例如文章摘要,内容和标题。
1 2 3 4 5 |
<?php echo wp_trim_words( get_the_content(), 55 ); // 文章内容 echo wp_trim_words( get_the_excerpt(), 55 ); // 文章摘要 echo wp_trim_words( get_the_title(), 30 ); // 文章标题 ?> |
wp_trim_words()函数基本用法:
1 | <?php $trimmed = wp_trim_words( $text, $num_words = 55, $more = null ); ?> |
参数说明:
- $text(字符串) (必需) 要截取的内容,默认: 无;
- $num_words(整数) (可选) 限定的字数,默认: 55;
- $more(字符串) (可选) 截取后加在尾部的字符,默认: ‘…’
二、使用php函数mb_strimwidth()进行截取
mb_strimwidth是一个超轻量级的php函数,用于获取指定宽度截断字符串。
mb_strimwidth()函数基本用法:
1 2 3 |
<?php echo mb_strimwidth(get_the_title(), 0, 30,"…"); ?> |
1 2 3 |
<?php mb_strimwidth(string $str,int $start, int $width [,string $trimmarker [, string $encoding ]] ) ?> |
参数说明:
- $str //指定字符串
- $start //指定从何处开始截取
- $width //截取文字的宽度
- $trimmarker //超过$width数字后显示的字符串
三、使用原生函数customTitle()进行截取
将下面的代码添加到主题的functions.php文件中:
1 2 3 4 5 6 7 |
function customTitle($limit) { $title = get_the_title($post->ID); if(strlen($title) > $limit) { $title = substr($title, 0, $limit) . ‘…’; } echo $title; } |
在需要调用的地方添加下面的代码即可:
1 | <?php customTitle(30); ?> |
四、使用自定义函数cut_str ()进行截取
1 2 3 4 5 6 7 8 9 10 11 12 |
//标题截断 function cut_str($src_str,$cut_length){$return_str=”;$i=0;$n=0;$str_length=strlen($src_str); while (($n<$cut_length) && ($i<=$str_length)) {$tmp_str=substr($src_str,$i,1);$ascnum=ord($tmp_str); if ($ascnum>=224){$return_str=$return_str.substr($src_str,$i,3); $i=$i+3; $n=$n+2;} elseif ($ascnum>=192){$return_str=$return_str.substr($src_str,$i,2);$i=$i+2;$n=$n+2;} elseif ($ascnum>=65 && $ascnum<=90){$return_str=$return_str.substr($src_str,$i,1);$i=$i+1;$n=$n+2;} else {$return_str=$return_str.substr($src_str,$i,1);$i=$i+1;$n=$n+1;} } if ($i<$str_length){$return_str = $return_str . ‘…’;} if (get_post_status() == ‘private’){ $return_str = $return_str . ‘(private)’;} return $return_str;}; |
在需要调用的地方添加下面的代码即可:
1 | <?php echo cut_str($post->post_title,30); ?> |
1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:115904045@qq.com,我们将第一时间处理!
2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持
3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读网站声明。