我的编程空间,编程开发者的网络收藏夹
学习永远不晚
位置:首页-资讯-开源

wordpress首页显示摘要的几种方法小结

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

wordpress首页显示摘要的几种方法小结

more标签

这种方法应该是最灵活的一种方法,操作也很简单,只需要你在编辑文章的时候插入more标签

或者使用快捷键alt+shift+t,效果如下

那么如果你在主题的首页模板中调用the_content函数,首页的文章摘要就显示more之前的内容。相反,如果没有插入more标签,就会显示全文。

手动输入摘要

在首页模板中(比如home.php或index.php)中调用the_excerpt函数显示摘要,如果你在编辑文章的时候,在下面的“摘要”内输入了内容,则会显示该“摘要”里的内容

首页、存档页显示文章摘要的好处很多,比如:

1,页面不会拉的很长,既美观,又有利于访客快速找到所需的文章

2,减少搜索引擎认为的重复内容

3,浏览者想看到全文就得点击进入单个文章页,因此增加了点击量 -.-

4,首页、存档页数据量少了,节约了流量和带宽,提高了页面打开速度

RSS 输出全文的好处只用讲一条:作为读者,我订阅feed的时候很讨厌那种只输出摘要的

但是,wordpress默认的是显示全文,不但第一页显示全文,点“下一页”,进入第二页、第三页、乃至无穷页,也都显示全文。那么如何解决这一问题呢?网上流传着很多方法:

一、在写日志时插入<!–more–>标签,这样在首页、存档页显示的就只是<!–more–>之前的内容。

这种做法缺点太明显:

1,rss输出也变成了只有<!–more–>之前的内容。实际上,这一缺点可以通过改代码、装插件等办法克服,但另一个缺点则无法克服:

2,如果你之前已经写了数百篇文章,难道还要一个个修改,重新加上<!–more–>标签吗?

二、修改主题的模板文件,在 index.php 里找到


复制代码代码如下:

<?php the_content(); ?>

改成


复制代码代码如下:

<?php

if (is_single() or is_page())

{the_content();}

else

{the_excerpt();}

?>

这样改的作用是加一个判断,如果是单篇日志页或静态页面,则输出全文,否则输出摘要。

看上去很美,但wordpress默认的摘要输出算法是根据西文来的,以空格判断字数,而中文里基本没空格,所以它算完了之后输出的“摘要”其实还是全文……因此,对中文博客而言,此法必须和其他办法协同使用。

三、写日志时自定义摘要。在写日志界面有一个“自定义摘要”字段,把自己想显示为摘要的话输入进去即可。

这种办法优点非常突出:不像其他办法都只能把文章开头的若干字显示为摘要,这种方法的摘要内容非常灵活,可完全自定义。

但缺点也很突出:和第一种办法一样,以前的文章都要一个个手工改,工程过于浩大。

四、修改 WordPress 自带的摘要函数

根据http://www.fwolf.com/blog/post/102(这篇文章网上转载很多,我个人判断认为这里是原始出处,可叹很多转载的在搜索引擎中排名倒更靠前)

修改wordpress的源文件,对一般用户来说恐怕有点难度,而且如果升级wordpress还得重新修改,维护不方便。不过最新发现原作者把它写成了一个插件,所以都放在下面插件里面一起讲吧。

五、使用插件,主要仍是修改wordpress自带的摘要函数。不过wordpres默认的情况是存档页(按分类、标签和时间存的档)用摘要输出,主页及主页上点进去的第二页、第三页等等用全文输出,因此即使用了插件,想要首页显示摘要的话,仍要用第二种方法修改一下主题的模板文件才行。

下面分析一下我知道的几个插件的算法:

1,Fwolfhttp://www.fwolf.com/blog/post/296

和wp自带的几乎一样,只不过把按空格判断改成了按段落判断,会输出文章的前三段作为摘要。因为是按段落输出,也不会出现中文乱码。

2,桑葚的中文工具箱 http://yanfeng.org/blog/wordpress/kit/

用substr()函数截取前256个字节,再用utf8_trim()函数处理,保证中文不会出现乱码。

3,Yskinhttp://yskin.net/2006/07/mulberrykit.html

我原来推荐过这个,觉得很完美,但后来觉得我个人还是有些定制化的要求,决定自己动手改一改,因此才有了这篇文章 -.-

Yskin的是段落和字数混合判断,先根据回车把文章分割成n段,然后用mb_strlen()判断字数,如果没超过规定的字数,就再输出一段。因此他的最小输出单位仍然是段落。


以上所有方法都有一个共同特点:输出的摘要是没有格式的,只有纯文本,原来的颜色、字体、超链接、图片等等都被过滤掉了。而我个人其实希望能够保留格式。

另外,按段落输出的话,有的段落长,有的段落短,那么输出的摘要就不是很整齐(其实苛求这个整齐对一般的blog也没什么意义,不过如果是cms或杂志风格的主题,对排版可能有一定需求,另外就是我个人的偏好 -.-)。

最理想的情况是根据显示的行数判断,就像古龙的小说一样,按行数算钱,不管这行是只有一个字,还是写满了,这样输出的文字块大小一定是整齐的。但网页不像书本,宽度不固定,无法预知每行写满了应该是多少字,而且如果保留图片的话,那么图片应该占多少行也很难判断,所以根据行数判断暂时不可行。

退而求其次的办法是根据字数判断。每个摘要虽然“占地面积”可能不一样,但字数是一样的,也还算整齐。不过中文工具箱的办法有点麻烦,其实有个mb_substr()函数就完全可以达成这一任务,截取指定数量的前若干个汉字,绝不会出现乱码。

不过mb_substr()函数也有个问题,它是根据字符数截取,如果文章里面夹杂了英文,比如wordpress这一个词就是9个字符了,它比九个汉字的占地面积要小的多,那么夹杂英文的摘要就会显得比全汉字的摘要短(这个都考究,我觉得我是有点bt了 -.-)。解决办法是用mb_strcut()函数,它和mb_substr()函数基本一样,只是是根据字节数截断的,在utf-8里,一个汉字大概占三个字节,一个英文字母占一个字节,这样截出来的汉字文本就会短一些,和英文的长短比较一致。同样,mb_strcut()函数也不会出现乱码。

mb_substr()和mb_strcut()函数共同的问题是,它们是按字符截取的,对英文来说就是按字母截取的,因此有可能把一个单词从中间截断……

另一个问题是mb_substr()和mb_strcut()属于mbstring扩展库,有的空间不支持。对于这种空间商,写信去要求他安装吧,付了钱的就得理直气壮提要求。要求无效的,真得考虑一下这种基本要求都不能满足的空间的质量了。


我写了一个插件,基本仿照Yskin的,不过截取用的是mb_strcut()。并为不支持mb_strcut()的空间自定义了一个函数,抄自网上的mb_substr()函数替代脚本,没找到mb_strcut()的替代脚本,汗。此外还有以下特点:

1,输出的摘要保留原来文章的格式。

2,做了一个判断,如果是存档页(分类存档、每月存档等),输出的摘要较短;如果是首页,输出的摘要较长。

3,如果本来的文章长于摘要,那么最后会显示[……],省略号指向全文的链接。去掉了Yskin原来的统计字数,因为我个人不喜欢;当然要加上也很容易。


更新:

Advanced Excerpt 是另一个很好的 WordPress 摘要插件,但需要略加改动才适合中文,对它的介绍和修改方法请看保留 html 标签的 wordpress 摘要插件一文。 总结:

为了完美地实现在 wordpress 博客首页、存档页显示摘要,RSS 输出全文,请根据自己的需求下载上述摘要插件中的一个,或下载我写的摘要插件。开启插件之后,如果发现你的首页仍然是全文,那说明你的主题不支持,请根据上面的第二条办法修改主题文件

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

wordpress首页显示摘要的几种方法小结

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

wordpress首页显示摘要的几种方法小结

more标签 这种方法应该是最灵活的一种方法,操作也很简单,只需要你在编辑文章的时候插入more标签 或者使用快捷键alt+shift+t,效果如下 那么如果你在主题的首页模板中调用the_content函数,首页的文章摘要就显示more之
2022-06-12

wordpress截取首页摘要内容的方法

本文实例讲述了在wordpress截取首页摘要内容实现方法,分享给大家供大家参考。具体分析如下: 这里截取就是利用了自定义的add_filter函数.在functions.php里加入下面代码后直接在主题模板里使用the_excerpt()
2022-06-12

wordpress首页文章限制显示字数的方法

方法一:使用标签来自由的截取字数 在模板中使用th编程客栈e_c编程客栈ontent()函数来打印内容,在文章中通过点击more按钮或在HTML模式下使用标签,这样,你可以自由的控制www.cpp
2022-06-12

Vue显示图片的几种方式小结

本文主要介绍了Vue显示图片的几种方式小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-02-05

wordpress首页不显示指定分类文章的方法

本文实例讲述了wordpress首页不显示指定分类文章的方法。分享给编程客栈大家供大家参考。具体分析如下: 有时我们不希望所有分类的文章都在首页显示出来,多只希望显示一些我觉得重要的文章在首页显示,下面我来给大家介绍wordpress首页不
2022-06-12

wordpress设置友情链接只在首页显示的方法

对于有的主题,当从后台小工具中添加友情链接后,却发现其是为全站显示的。如果只希望让它在首页显示,则可以在模板函数文件中增加一个函数来实现。 具体操作可按如下步骤进行: 1. 进入后台,外观-编辑,会看到一个编辑代码的地方,在侧边栏的模板函数
2022-06-12

WordPress评论添加楼层显示的方法小结

本文实例总结了WordPress评论添加楼层显示的方法。分享给大家供大家参考。具体分析如下: 第一步:要在评论中增加楼号显示,也就是要更改WordPress的评论内部结构。 第二步:WP中的评论是统www.cppcns.com一标号的,也就
2022-06-12

WordPress首页显示多个图片及文字友情链接的方法

本文实例讲述了WordPress首页显示多个图片及文字友情链接的方法。分享给大家供大家参考。具体分析如下: WordPress中默认只能调编程客栈用一个文字友情连接,下面我们就来给大家介绍让wordpress首页显示多个图片、文字友情链接的
2022-06-12

编程热搜

  • wordpress错位如何解决
    这篇文章主要介绍“wordpress错位如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“wordpress错位如何解决”文章能帮助大家解决问题。wordpress
    wordpress错位如何解决
  • 帝国cms调用栏目别名的修改步骤
    请留意下面的修改方法 修改后栏目别名使用 !--bname--] 调用 打开e/class/t_functions.php搜索定位到带模板的栏目导航标签修改1复制代码代码如下://替换变量$bclassname=$class_r[$clas
    帝国cms调用栏目别名的修改步骤
  • 动易Cms MAC验证视图失败的解决方法
    “/”应用程序中的服务器错误。 -------------------------------------------------------------------------------- 验证视图状态 MAC
    动易Cms  MAC验证视图失败的解决方法
  • DEDECMS如何支持中文水印
    DEDECMS如何支持中文水印?修改/include/inc_photograph.php,在165行处加这行代码:$w_text = iconv("GB2312","UTF-8",$w_text);OK,现在可以用中文做水印了,但默认的字体大小是5,中文字体
    DEDECMS如何支持中文水印
  • 快速了解Discuz!程序文件功能
    相信有不少人热衷于基于修改原有系统文件所做的插件,当然了解程序文件功能是最重要的,下面我把Discuz! X2.0主要的程序文件功能说一下。Tips:Q:针对说明的文件是?A:我只基于原版文件对upload目录中基本的程序文件(php,ht
    快速了解Discuz!程序文件功能
  • DedeCMS编辑器fck更换成eWebEditor编辑器具体步骤
    将eWebEditor编辑器插入DEDE后台的效果: 完全Word在线编辑的功能,让你从此摆脱发可编辑器卡得死,进入流畅干净编辑界面新时代。 下面是具体步骤: 首先,你要知道eWebEditor是一个什么工具。 eWebEditor是由国
    DedeCMS编辑器fck更换成eWebEditor编辑器具体步骤
  • 允许 WordPress 上传任意文件的方法
    此时如果上传一个不在预定义编程客栈的安全扩展名列表,如.lrc,会报kAtKhHRl错: F编程客栈ile type does not meet security guidelines. Try another. 解决此问题有两方法: 在
    允许 WordPress 上传任意文件的方法
  • dedecms 软件下载模块中添加下载方式为迅雷下载联盟代码
    修改 /plus/download.php 文件 www.cppcns.com查找
    dedecms 软件下载模块中添加下载方式为迅雷下载联盟代码
  • dedecms网站tag标签全部静态化的解决方法
    更改tags.php文件在根目录 找到$tag = FilterSearch(urldecode($tag)); 替换为:$tag = urldecode($tag); 更改文件arc.taglist.class.php文件文件所在的路径是
    dedecms网站tag标签全部静态化的解决方法
  • 帝国CMS远程保存图片的方法
    本文实例讲述了帝国cms远程保存图片的方法。分享给大家供大家参考。 具体实现方法如下:复制代码代码如下:
    帝国CMS远程保存图片的方法

目录