在WordPress系统中,默认的首页和目录页使用的书全文输出,这对于文章内容较长的博客来说很不方面,下面我介绍一个方法,可以简单的实现在WordPress首页和目录页显示摘要而非全文。

首先找到wp-content/themes下你使用的模板目录,查找目录中的文件,如果有home.php则修改home.php,没有的话就修改index.php,找到<?php the_content(); ?>这一行,将其修改为以下代码:

<?php if(is_category() || is_archive() || is_home() ) {
the_excerpt();
} else {
the_content(‘Read the rest of this entry &raquo;’);
} ?>
<div ><div><?php comments_popup_link(‘No Comments’, ’1 Comment’, ‘% Comments’); ?> so far | <a href=”<?php the_permalink() ?>”>Read On &raquo;</a></div></div>

这时,你的WordPress首页和分类就显示为摘要信息而不是全文信息了。

这段代码可以在你的首页、存档页、目录页使用摘要输出,使用摘要输出后,整个WordPress的重复内容就少多了,很利于搜索引擎优化。

英文版:WordPress Excerpt Seo Tips

如何在WordPress主题中显示发布文章摘要而不是全文呢?其实这个非常简单,大家都可以利用在WordPress中内置这个功能来实现。用这个方法的优点是减少了页面加载的时间并且提高了页面浏览数量。

它如何减少页面加载的时间?

如果你写有大量图片的文章,在同一个页面加载这些图片将会大大影响你的页面加载时间。而通过使用本文的方法,你可以显示一下该文章的迷你描述,而让读者通过单独的文章页面浏览文章。

它如何提高页面浏览数量? 如果你不使用摘要的话,有时用户会只阅读分类页面下的文章。而如果加了摘要,他们将会转向原始的文章。页面浏览量就从1变为2了。另外,由于评论表单也跟原始文章在同一个页面,这样就会有更多的用户会发表评论,因为不需要加载另一个单独的页面来发表评论显得更加方便了。

教程 打开你的index.php、archive.php 以及category.php文件。有些人的模板并不一定都包含所有这些文件,也没有关系,只需要打开你手头上有的文件就好。

找出下面的代码: <?php the_content(); ?>

将它替换为: <?php the_excerpt(); ?>

这样你就可以从WordPress管理面板写自定义的摘要了。

如果你没有写自定义的摘要,那么WordPress 将会自动从你的文章前面的55个字放到摘要里显示。

从WordPress2.9以后的版本,你都可以修改摘要的字数限制,如果你需要修改字数限制,

只要打开 functions.php文件添加下面的代码:

// Changing excerpt length function new_excerpt_length($length) { return 100; }

add_filter(‘excerpt_length’, ‘new_excerpt_length’);

// Changing excerpt more function new_excerpt_more($more) { return ‘%u2026′; }

 add_filter(‘excerpt_more’, ‘new_excerpt_more’);

如果你想要查看这段代码的效果,只要从导航菜单点击任何一个分类,你就会看到它不显示完整的文章而是摘要。

================================

WordPress在搜索或列Archives(按时间、按分类)的时候,在列表中是显示帖子摘要的。原来我觉得这样不好,就把列表中显示摘要改成了在列表中显示全部帖子,使用一段时间以后发现很不好。

 

首先列表会变得很臃肿,失去了列表的本身作用——方便用户寻找真正想要看的帖子,其次,在搜索引擎抓取页面的时候,把那些列表页面也抓了过去,但随着帖子的不断增多,列表的更新远快于搜索引擎缓存的更新,用户使用搜索引擎进来以后,在列表中就很难找到目标了。

 

这样在列表中只显示摘要的优势就体现出来了,首先页面很清爽,用户可以清楚的找到要查看的目标,然后搜索引擎抓取内容的时候,会更多的关注页面的Permalink,用户也就会通过搜索直达目标帖子,方便了用户。

 

打开WordPress的wp-includes\functions-formatting.php,找到其中的function wp_trim_excerpt,将如下代码

$excerpt_length = 55;
 $words = explode(’ ‘, $text, $excerpt_length + 1);
 if (count($words) > $excerpt_length) {
 array_pop($words);
 array_push($words, ‘[…]’);
 $text = implode(’ ‘, $words);
 }

更改为

$excerpt_length = 3;
 $words = explode(”\n”, $text, $excerpt_length + 1);
 if (count($words) > $excerpt_length) {
 array_pop($words);
 array_push($words, ‘  ……ID) . ‘”>[阅读全文]’);
 $text = implode(”\n”, $words);
 }

就可以了,WordPress默认的生成摘要是用空格来判断的,就是取到55个空格结束,这适用于西方采用空格作为词间隔的语言,但中文是不分词的,所以我使用读取3行的方式,取前3行,对哪种语言都是适用的。