模板标签-the_excerpt()

2条评论

说明

该标签显示当前文章的摘要,摘要之后带有[...]符号,而非“read more”链接。如果用户没有为文章提供摘要(在文章编辑界面下方的摘要字段中填写摘要),WordPress会自动截取文章的前55个单词作为摘要。在后面这种情况下,摘要中的HTML标签和图形都会被剥离。该标签必须在WordPress主循环(loop)内。

注意:若当前文章是一个附件,例如在attachment.php和image.php模板循环中,那么显示该附件的说明文字。说明文字不包含摘要的[...]标记。

the_excerpt() VS. the_content()

有时只使用the_content函数更具实用意义。根据有否使用 <!--more--> 标签,the_content()函数将决定所显示的内容。 <!--more--> 标签将文章/页面分割为两部分,标签前的内容用以显示在网页上。浏览单篇文章/页面时, <!--more-->会被忽略。

用法

<?php the_excerpt(); ?> 

参数

该标签无参数。

示例

默认用法

显示文章摘要。用在非单篇或非固定链接的文章中,代替the_content(),强制摘要显示在循环内。

<?php the_excerpt(); ?>  


与条件标签共同使用

在存档页面(由is_archive()函数判断)或分类页面(由is_category() 函数判断)上用the_excerpt()代替the_content()标签。

以下两个示例都可在WP 1.5及更高版本中运行。

<?php if ( is_category() || is_archive() ) {
the_excerpt();
} else {
the_content();
} ?>

而对WP 1.5之前的版本,只能使用下面这个示例:

<?php if ( $cat || $m ) {
the_excerpt();
} else {
the_content();
} ?>
 

用过滤器控制摘要长度

默认情况下,摘要的长度为55个单词。要用 excerpt_length过滤器更改摘要的长度,可在主题的functions.php文件中添加以下代码:

function new_excerpt_length($length) {
return 20;
}
add_filter('excerpt_length', 'new_excerpt_length');
 

用过滤器删除[...]字符串

在WP 2.9及更高版本中

默认情况下,摘要之后(more字符串之后)的文章内容显示为“[...]”。要用 excerpt_more过滤器删除摘要more字符串,请在主题的functions.php文件中添加以下代码:

function new_excerpt_more($more) {
return '[.....]';
}
add_filter('excerpt_more', 'new_excerpt_more');

在WP 2.8及之前的版本中

function new_excerpt_more($excerpt) {
return str_replace('[...]', '...', $excerpt);
}
add_filter('wp_trim_excerpt', 'new_excerpt_more');

注释

历史记录

  • 始见于WordPress 0.71版本

源文件

the_excerpt()位于wp-includes/post-template.php

#1
修改excerpt长度的那段,好像只对英文博客有用啊
#2
恩 是的 只对英文有用,中文的单独加摘要