用WordPrees做自己的主题时,遇到一个比较麻烦的事情,就是日志摘要的截取。经过努力和尝试,整理几个常用的方法。
1 直接用“more”手工截取。
这个是最常用的方法。在信息调用的时候用<?php the_content(); ?>或<?php the_excerpt(); ?>调用就好了。
坏处就是:每次要用手工截取,字符数控制费力。
2 用下面的代码替换<?php the_content(); ?>或<?php the_excerpt(); ?>,可以强制截取指定字符数(根据需要把260换成自己要的字符数,吧”…”换成省略后的标示)。这个的好处就是截取后整整齐齐的,坏处么,就是中文的时候会出现字符被截断,出现乱码。
<?php echo mb_strimwidth(strip_tags(apply_filters(‘the_content’, $post->post_content)), 0, 260,"…"); ?><br />
<span class="more"><a rel="more-link" href="<?php the_permalink() ?>" title="<?php the_title(); ?>">阅读全文+</a></span>
3 使用插件Limit Posts Automatically。
这个插件原本是英文的,经过Mark汉化和修改后很好用了,可以在后台简单设置后就实现理想的效果。半肥猫自己觉得很好用。大家可以到Mark的网站去看看。有很详细的说明。
这个插件好像要一开始就使用,发布的文章才可以生效。在插件安装前发布的文章不会有效的。
4 冰果写的代码,WordPress自动实现摘要。
感兴趣的可以自己去冰果的站点看看,作者也写了比较详细的说明文档。
这个办法半肥猫没有用过,不知道具体如何。
暂时发现的方法就是这几个了,如果有朋友有更好更多的办法,也顺便告诉我一下~
5 CSS方法。
直接给指定区域定义一个CSS样式,超出部分隐藏。
6 jQuery方法
这个方法是从{CSS.WORK}看到的。
怎么用?我也没有用过,自己找作者吧:)
$(document).ready(function(){
$("[@limit]").each(function(){
var Text = $(this).text();//获得内容,这里会过滤小HTML代码
var textLength = $(this).text().length;//得到内容字节数
var num = $(this).attr("limit");//获得需要截取的值
//alert(textLength)
if(textLength > num){
$(this).attr("title",Text);//将完整内容写入标签Title,有利于客户体验。
$(this).text(Text.substring(0,num) + "…");//…是结尾最加的东西
}
});}); <h2 limit="24">截取内容截取内容截取内容截取内容截取内容截取内容截取内容截取内容</h2>