• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏幻天博客吧
  • 欢迎来到铃音的私人博客! QQ群

[教程]WordPress自动截取文章标题字数的3种方法

兴趣 天空の铃音 6年前 (2014-04-03) 1030次浏览 已收录 1个评论 扫描二维码
文章目录[隐藏]

简介

在制作 WordPress 主题的时候,我们通常要截取固定字数的文章标题,以保证主题样式的某些需求。
rpgsky.net_2014-04-03_13-31-53
下面,吾就和大家分享下 WordPress 自动截取文章标题字数的 3 种方法。

通过原生函数截取

将下面的代码添加到主题的 functions.php 文件:

function customTitle($limit) {
    $title = get_the_title($post->ID);
    if(strlen($title) > $limit) {
        $title = substr($title, 0, $limit) . '...';
    }

    echo $title;
}

然后在输出文章标题的地方,使用下面的代码:

<?php customTitle(30); ?>

注:30 为标题字数,请根据自己的需求修改。如果标题字数小于 30,就显示完整标题;如果字数大于 30,就截取 30 个字符,末尾自定添加…

通过自定义函数截取

//标题截断
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;};

将上面的代码添加到主题的 functions.php 最后一个 ?> 的前面,然后在需要调用的地方添加下面的代码即可:

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

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

通过 CSS 来“截取”

严格来说,这不是截取,而是隐藏了溢出的字符。对标题所在的选择器 id 或 class 添加下面的样式:

.post-title{

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

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

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

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

}

吾比较常用的是第三种,当然了,如果 CSS 无法达到效果,推荐第一种。

如果你还知道其他截取标题字数的更好方法,欢迎和我们一起分享。


转载请注明 - [教程]WordPress 自动截取文章标题字数的 3 种方法 - 幻想天空 - 魔王殿 - 铃音の小屋
喜欢 (0)
[不公开]
分享 (0)
关于作者:
美国服务器正在努力恢复中!目前系统升级完善,功能可以使用!现在来申请免费空间无需填表哟!
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. :xiao 测试
    天空铃音2014-04-04 14:04 回复 Windows 7 | Chrome 30.0.1599.101