不使用插件让WordPress实现文章标题截断和文章截断

详情
评论
问答
赞助

您可以通过搜索或浏览分类列表来找到您期望下载的资源。随后点击资源介绍页右侧的下载链接按钮,依据提示信息进行操作即可。

大部分资源可积分免费下载,为了维持网站的运行小部分资源须付费才能下载。

本站提供的下载资源均为网络搜集,仅供个人学习和交流使用。对于版权问题,请用户自行判断并承担相应责任。

随着时间的推移,维持网站的运行需要支出高昂的服务器和带宽费用。为了能继续坚持免费做下去,如果觉得文章对您有用,希望您能动动发财的小手免费赞助狐狸,给狐狸加油打气!激励狐狸库继续创作下去!谢谢!

在互联网的浩瀚海洋中,我们的网站就像一座明亮的灯塔,为无数用户照亮前行的道路。它承载着知识的传递、梦想的交流,以及大家共同的回忆与期待。然而,运营和维护这样一个网站需要投入大量的心血与资金。

现在,您只需通过支付宝扫码领红包,就能轻松成为我们的赞助人。这不仅是一次简单的支持,更是您与网站共同成长的见证。操作简单,打开支付宝,扫描专属二维码,您的每一份心意都将化作网站发展的动力。

您的赞助,能让网站不断升级,提供更优质的服务,给大家带来更好的体验。让我们携手共进,让这座灯塔绽放更耀眼的光芒,照亮更多人的网络世界 。

下面是免费赞助的方法和流程

  1. 下面图一是本站的支付宝每日领红包二维码,使用支付宝扫描二维码后会自动显示红包金额,有任意小额金额红包。
  2. 点击“去使用”,再扫描第三张图的二维码进行付款即可。
  3. 上面扫到多少红包就输入多少金额,红包会自动抵扣金额,所以不需要额外费用。
  4. 如需赞助自定义金额请到【赞助狐狸】页面进行赞助。
  5. 这个扫码红包是每天都可以领的哦,支持同账号重复,每天花一分钟时间即可免费支持本站!
扫码红包 红包图 扫码支付

目前,Wordpress CMS(杂志)主题盛行,CMS主题有一个共有的特性就是,首页只显示文章部分内容,也就是俗称的文字截断,这个与真正的WP摘要功能无关,只是控制文章字数显示在首页,真正的WP摘要需要主题的支持,两者不能混为一谈。

不使用插件让WordPress实现文章标题截断和文章截断-狐狸库
wordpress

目前,WordPress CMS(杂志)主题盛行,CMS主题有一个共有的特性就是,首页只显示文章部分内容,也就是俗称的文字截断,这个与真正的WP摘要功能无关,只是控制文章字数显示在首页,真正的WP摘要需要主题的支持,两者不能混为一谈。

那么显示文章部分内容有什么好处呢,那就是既可以增加首页的信息量,方便浏览者快速找到想看的内容,又不会把首页拉的很长,整齐美观,还有什么…想起来再说。

实现文字截断的方法很多

比如:在编辑文章时在适当位置加入more标签、安装启用中文工具箱等,特别是一些国外主题会加入特殊的函数实现文字截断,但中文字符与英文字符的算法不同,对中文的截断不是很理想。这里为大家推荐适合中文截断的方法,这些方法已应用在我制作的热点新闻主题中。

文章截断:

<?php echo mb_strimwidth(strip_tags(apply_filters(\'the_content\', $post->post_content)), 0, 200,\"...\"); ?>

用上面的代码替换当前主题archive.php、index.php模板文件中类似:

<?php the_content(\'Read more...\'); ?>

<?php the_excerpt(); ?>

其中数字200是字数,可以适当调整,但最好保持为偶数.

文章标题截断:

很多CMS主题是以分类文章列表形式展示的,但当某个文章标题太长,就会造成回行,很不美观,必须要将多余的文字去掉,比较简单也比较笨拙方法是用CSS截断,可惜当文章标题同时有汉字和英文时问题就明显了,经常是一个字只截断了一半,看上去很古怪。还是定义PHP函数实现标题截断比较合理也非常容易。
下面的标题截断函数与文章截断函数同出一辙:

<?php echo mb_strimwidth(get_the_title(), 0, 24, \'\'); ?>

不过当中文与英文同时存在于标题中时,还是会造成截断不准确,这个问题在文章截断中并不是很明显。

最理想的标题截断方法:

首先将下面的代码添加到主题functions.php模板文件中

//文字截断
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;
}

再用下面的代码

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

替换主题模板中的

<?php the_title(); ?>

其中:调整数字32可以控制标题的长度.


温馨提示:本文最后更新于2022/10/20 04:24:55。若文章内容或图片失效,请留言联系站长反馈!
© 版权声明
THE END
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容