较完美的WordPress文章摘要

较完美的WordPress文章摘要,第1张

较完美的WordPress文章摘要(截断)方案分享

换句话说,互联网上有很多关于文章摘要的方案,从在Wordpress中嵌入摘要,到强大方便的more标签截断,再到php自己的mb_strimwidth涵洞截断...这三种方案都可以在一定程度上解决困难。

自然,还有各位老前辈也曾把之上三种方案融合一二,以做到更普遍的相关度.但是,这厢此前在网络上检索很久,却不曾寻到三种方案合为一体的试着,因此只能亲自动手写一下了:)
沒有demo,全部全过程并不不便,关键分作下列两一部分:
STEP1.生产加工more标签↓

复制代码编码以下:
<?php
functionmy_more_link($link){
//严禁more标签跳转
$link=preg_replace('/#more-\d/i','',$link);
//我还在more标签的外场加了一层p,用于更便捷地自定more标签在网页页面中的显示信息(应用p.read-more)
$link=str_replace('<a','<pclass="read-more"><arel="nofollow"title="继续阅读:'.get_the_title($post->post_title).'"',$link);
//合闭新包囊的p
$link=str_replace('</a>','</a></p>',$link);
return$link;
}
add_filter('the_content_more_link','my_more_link');//把涵数追添加主题风格
?>

之上,应是加上入主题风格的function.php,略微注解.全部more标签,我增加了nofollow与title="新闻标题"的特性.这种特性当能任君改动,yourstyle~
STEP2.生产加工详细方案↓
嗯,这厢下列才算是主题...
我的想法是,最先分辨内嵌摘要,如果有就立即显示信息,不然进到下一分辨,是不是存有more标签.最终才算是应用php本身的mb_strimwidth涵数截断.
完成的所有编码以下(根据STEP1中的实际 *** 作):

复制代码编码以下:
<?php//它是为了更好地在每篇文章内容(或网页页面)立即显示信息所有内容,而不应用下列的分辨
if(is_singular()){the_content();}else{
//界定2个$
$pc=$post->post_content;
$st=strip_tags(apply_filters('the_content',$pc));
//分辨是不是存有内嵌摘要
if(has_excerpt())
the_excerpt();
/*应用正则表达式试着搭配more标签,
并分辨假如存有more标签,或是文章正文內容长短低于300,则立即以more标签方法显示信息,
就是说,有more便显示信息more,没more且长短低于300则立即显示信息全篇.
我应用了mb_strwidth来分辨长短.
*/
elseif(preg_match('/<!--more.*?-->/',$pc)||mb_strwidth($st)<300)
the_content('Readmore&raquo;');
//不然...下列
elseif(function_exists('mb_strimwidth'))//分辨是不是适用mb_strimwidth涵数
echo'<p>'//mb_strimwidth截断后获得的是纯文字,因此我给它包了一层p
.mb_strimwidth($st,0,300,'...')//对文字內容截断,从部位0刚开始往后面提取300长短,超过一部分以点点取代
.'</p><pclass="read-more"><atitle="'//给截断的內容加上一个与STEP1彻底一模一样的"more标签"...
.the_title("继续阅读:","",false)//留意这儿与STEP1对比,应用了另一个涵数来获得题目
.'"rel="nofollow"href="'
.post_permalink()
.'"class="more-link">Readmore&raquo;</a></p>';
elsethe_content();//最终沒有挑选的挑选...
}?>

之上就是全部全过程了,把STEP2的所有编码复制,随后寻找主题风格循环系统一部分,以之更换相近<?phpthe_content();?>"的存有就可以.
到此,我应用的文章内容摘要与截断方案便算完成了,若有不妥,还请吝惜留言板留言赐教~心怀感恩啦~
注1:应用mb_strimwidth假若出現错码,请自主Google之...
注2:应用mb_strimwidth会强制性截断html代码块而造成文件格式乱了套,因此最好是還是手动式设定more标签,或是只将其用以文字的文章内容.
注3:若php文件中载入了中文字符,请储存为utf8-no-bom文件格式.
Update:2011.05.31

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/772604.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存