php采集指定字数标题,WordPress文章摘要内容和标题字数5种完美截取方法

先森在实现博客自适应的时候,关于标题和内容的截取可谓是走了不少弯路,吃了不少亏,所以看到@boke112导航 做了一个分享,先森就转过来作为笔记了。

我们在制作(或DIY)WordPress主题的时候,特别是首页和分类目录页,我们就有必要通过控制文章摘要内容和标题的字数来让整体布局更加合理和美观,今天我们就跟大家分享五种方法完美截取WordPress文章摘要内容和标题字数。

1910a74e206ac44310a124682ffddd90.png

标题和内容截取

方法一:使用WP内置函数wp_trim_words()截取

WordPress内置的wp_trim_words()函数,专门用来截取限定字数的内容,比如文章摘要、内容、标题等。

echo wp_trim_words( get_the_content(), 66 ); // 文章内容

echo wp_trim_words( get_the_excerpt(), 66 ); // 文章摘要

echo wp_trim_words( get_the_title(), 30 ); // 文章标题

?>

wp_trim_words()函数默认用法:

参数说明:

$text(字符串) (必需) 要截取的内容,默认: 无;

$num_words(整数) (可选) 限定的字数,默认: 55;

$more(字符串) (可选) 截取后加在尾部的字符,默认: ‘…’

示例说明:

$content = get_the_content();

$trimmed_content = wp_trim_words( $content, 30, ' ...阅读更多' );

echo $trimmed_content;

?>

注:可以修改上面的数字30来设定长度。

方法二:使用php函数mb_strimwidth()截取

mb_strimwidth是超轻量级的php函数,用来获取指定的宽度截断字符串。

mb_strimwidth()函数默认用法:

mb_strimwidth  (  string $str  ,  int $start  ,  int $width  [,  string $trimmarker  [,  string $encoding  ]] )

参数说明:

$str //指定字符串

$start //指定从何处开始截取

$width //截取文字的宽度

$trimmarker //超过

$width数字后显示的字符串

示例说明:

平时我们调用文章标题都是这样:

现在我想控制标题的输出字数,只需要使用mb_strimwidth函数后变成这样:

注:可以修改上面的数字30来设定长度。

方法三:使用原生函数customTitle ()截取

将下面的代码添加到主题的functions.php文件最后一个 ?> 的前面:

function customTitle($limit) {

$title = get_the_title($post->ID);

if(strlen($title) > $limit) {

$title = substr($title, 0, $limit) . '...';

}

echo $title;

}

然后在需要调用的地方添加下面的代码即可:

注:可以修改上面的数字30来设定长度。

方法四:使用自定义函数cut_str ()截取

将下面的代码添加到主题的functions.php文件最后一个 ?> 的前面:

//标题截断

function cut_str($src_str,$cut_length){$return_str='';$i=0;$n=0;$str_length=strlen($src_str);

while (($n

{$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

if (get_post_status() == 'private'){ $return_str = $return_str . '(private)';}

return $return_str;};

然后在需要调用的地方添加下面的代码即可:

<?php  echo cut_str($post->post_title,30); ?>

注:可以修改上面的数字30来设定长度。

方法五:使用CSS代码来“截取”

其实这不是截取,而是隐藏了溢出的字符。我们可以在主题CSS文件style.css中对标题所在的选择器 id 或 class 添加下面的样式:

.post-title{

width:250px; /* 限制宽度(可选) */

whitewhite-space:nowrap; /* 禁止自动换行 */

word-break:keep-all;/* 这个也是禁止自动,二选一即可 */

overflow:hidden; /* 隐藏溢出的内容 */

text-overflow:ellipsis; /* 溢出文本使用...代替 */

}

总结

文中分享的五种方法都可以实现自动截取WordPress文章的内容、摘要和标题字数,至于那个方法比较好用就是仁者见仁智者见智了,boke112在使用的过程中都是结合几种方法来使用的,比如同时使用方法二、四、五,有些地方可能是用方法二,有些地方可能是用方法五,关键还是看自己喜欢吧。

历史上的今天:

本文参考自:http://boke112.com/3445.html,由狂族晨曦(capjsj.cn)整理编辑,本文共2935个字。

本文链接地址:https://www.capjsj.cn/wp_trim_words.html , 转载请保留本说明!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值