五种方法完美截取WordPress文章摘要内容和标题字数

原创 2016-08-31 阅读 329 次 评论 22 条

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

五种方法完美截取WordPress文章摘要内容和标题字数

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

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

  1. <?php
  2. echo wp_trim_words( get_the_content(), 66 ); // 文章内容
  3. echo wp_trim_words( get_the_excerpt(), 66 ); // 文章摘要
  4. echo wp_trim_words( get_the_title(), 30 ); // 文章标题
  5. ?>

wp_trim_words()函数默认用法:

  1. <?php $trimmed = wp_trim_words( $text$num_words = 55, $more = null ); ?>

参数说明:

  • $text(字符串) (必需) 要截取的内容,默认: 无;
  • $num_words(整数) (可选) 限定的字数,默认: 55;
  • $more(字符串) (可选) 截取后加在尾部的字符,默认: ‘&hellip;’

示例说明:

  1. <?php
  2. $content = get_the_content();
  3. $trimmed_content = wp_trim_words( $content, 30, '<a href="'. get_permalink() .'"> ...阅读更多</a>' );
  4. echo $trimmed_content;
  5. ?>

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

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

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

mb_strimwidth()函数默认用法:

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

参数说明:

  • $str //指定字符串
  • $start //指定从何处开始截取
  • $width //截取文字的宽度
  • $trimmarker //超过$width数字后显示的字符串

示例说明:

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

  1. <?php the_title(); ?>

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

  1. <?php echo mb_strimwidth(get_the_title(), 0, 30,"..."); ?>

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

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

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

  1. function customTitle($limit) {
  2.     $title = get_the_title($post->ID);
  3.     if(strlen($title) > $limit) {
  4.         $title = substr($title, 0, $limit) . '...';
  5.     }
  6.     echo $title;
  7. }

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

  1. <?php customTitle(30); ?>

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

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

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

  1. //标题截断
  2. function cut_str($src_str,$cut_length){$return_str='';$i=0;$n=0;$str_length=strlen($src_str);
  3.         while (($n<$cut_length) && ($i<=$str_length))
  4.         {$tmp_str=substr($src_str,$i,1);$ascnum=ord($tmp_str);
  5.         if ($ascnum>=224){$return_str=$return_str.substr($src_str,$i,3); $i=$i+3; $n=$n+2;}
  6.         elseif ($ascnum>=192){$return_str=$return_str.substr($src_str,$i,2);$i=$i+2;$n=$n+2;}
  7.         elseif ($ascnum>=65 && $ascnum<=90){$return_str=$return_str.substr($src_str,$i,1);$i=$i+1;$n=$n+2;}
  8.         else {$return_str=$return_str.substr($src_str,$i,1);$i=$i+1;$n=$n+1;}
  9.     }
  10.     if ($i<$str_length){$return_str = $return_str . '...';}
  11.     if (get_post_status() == 'private'){ $return_str = $return_str . '(private)';}
  12.     return $return_str;};

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

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

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

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

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

  1. .post-title{
  2. width:250px/* 限制宽度(可选) */
  3. whitewhite-space:nowrap/* 禁止自动换行 */
  4. word-break:keep-all;/* 这个也是禁止自动,二选一即可 */
  5. overflow:hidden/* 隐藏溢出的内容 */
  6. text-overflow:ellipsis; /* 溢出文本使用...代替 */
  7. }

Boke112使用心得:

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

本文地址:http://boke112.com/3445.html
关注我们:请关注一下我们的微信公众号:扫描二维码,公众号:aiboke112
版权声明:本文为原创文章,版权归  所有,欢迎分享本文,转载请保留出处!
WordPress免费响应式主题:Nana
CPA教学与引流技巧

发表评论

呲牙憨笑坏笑偷笑色微笑抓狂睡觉酷流汗鼓掌大哭可怜疑问晕惊讶得意尴尬发怒奋斗衰骷髅啤酒吃饭礼物强弱握手OKNO勾引拳头差劲爱你

表情

  1. 我爱动感单车网
    我爱动感单车网 【省长】 @回复

    使用的是现成的主题,这些就不需要自己再去弄了。

  2. 成航先森
    成航先森 【镇长】 @回复

    这个好评,不知道能否转载啊,做个记录备忘。

  3. 刘传鹏博客
    刘传鹏博客 【镇长】 @回复

    用wordpress自带的比较好吧

  4. 小萝博客
    小萝博客 【市长】 @回复

    侧栏搞得很大啊

  5. 威客兼职
    威客兼职 【农民】 @回复

    代码写的不错!

  6. 纯洁博客
    纯洁博客 【县长】 @回复

    但是不懂这个。。。

  7. 捌零男人
    捌零男人 【镇长】 @回复

    原生函数能解决的一般用原生

  8. 龙笑天
    龙笑天 【县长】 @回复

    非常棒,收藏了~~~

  9. benen005
    benen005 【镇长】 @回复

    确实不错

  10. 管家婆
    管家婆 【镇长】 @回复

    学习了php挺好玩

  11. 2016年最新电影资源欢迎点击
    2016年最新电影资源欢迎点击 【村长】 @回复

    我这都是图片,就好像没这个需要!

  12. 生命小憩
    生命小憩 【农民】 @回复

    不错的,我当初改主题为小说站的时候,用到了这样的功能,文章介绍的很不错

  13. 龙砚庭
    龙砚庭 【市长】 @回复

    这个方法可以学一下,没准以后会改个主题出来玩玩呢!

  14. 爱时尚
    爱时尚 【市长】 @回复

    网页的美观也是可以让游客多停留几秒

  15. 逆向直销网赚
    逆向直销网赚 【农民】 @回复

    好的内容让人过目难忘!

  16. 博客114导航
    博客114导航 【镇长】 @回复

    对于不懂程序的还是用css方便