• 售前

  • 售后

热门帖子
入门百科

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

[复制链接]
ffycxyw2274436 显示全部楼层 发表于 2021-8-15 19:23:00 |阅读模式 打印 上一主题 下一主题
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 输出全文,请根据自己的需求下载上述摘要插件中的一个,或下载我写的摘要插件。开启插件之后,假如发现你的首页仍旧是全文,那阐明你的主题不支持,请根据上面的第二条办法修改主题文件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作