the_excerpt() 是 WordPress 核心函数中用于输出文章摘要的高频函数。其主要功能是获取并显示当前文章的摘要,若未手动设置摘要,则自动从文章内容中截取前 55 个单词,并默认以 [...] 结尾。该函数必须在 WordPress 主循环(The Loop)内使用。
函数描述与基本用法
函数的基本调用方式非常简单:
<?php the_excerpt(); ?>
此代码会直接输出当前文章的摘要。如果文章没有设置手动摘要,WordPress 会自动从内容中生成。
自定义摘要长度
默认的 55 个单词可能不满足所有主题的需求。你可以通过 excerpt_length 过滤器来修改摘要的长度。以下示例将摘要长度设置为 150 个单词:
function custom_excerpt_length($length) {
return 150; // 返回期望的单词数量
}
add_filter('excerpt_length', 'custom_excerpt_length');
注意:此过滤器控制的是单词(Word)数量,而非字符数。中英文混合内容时,计算方式以空格分隔的单词为准。
自定义摘要末尾的“更多”指示符
默认的 [...] 结尾可以通过以下两种方式修改。
1. 替换为纯文本
使用 excerpt_more 过滤器,可以将 [...] 替换为其他文本,例如 ... 或“继续阅读”:
function custom_excerpt_more($more) {
return '...'; // 替换为你想要的文本
}
add_filter('excerpt_more', 'custom_excerpt_more');
2. 添加“阅读更多”链接
更常见的做法是在摘要末尾添加一个指向完整文章的链接:
function custom_excerpt_more_link($more) {
global $post;
return ' <a href="' . get_permalink($post->ID) . '" class="read-more">阅读全文</a>';
}
add_filter('excerpt_more', 'custom_excerpt_more_link');
这段代码会在摘要末尾添加一个带有 read-more CSS 类的链接,方便进行样式定制。
重要注意事项与最佳实践
- 循环内使用:
the_excerpt()必须仅在 WordPress 主循环内部调用,否则会报错或输出不正确的内容。 - 手动摘要优先:在文章编辑器的“摘要”框中填写内容,将完全覆盖自动生成的内容,这是控制摘要最直接的方式。
- 代码添加位置:上述所有自定义函数都应添加到当前主题的
functions.php文件中。 - 函数位置:
the_excerpt()函数的定义位于 WordPress 核心文件wp-includes/post-template.php中。
扩展:获取摘要文本(不直接输出)
如果你需要获取摘要的文本字符串以便进行其他处理(例如存入变量),应使用 get_the_excerpt() 函数:
$my_excerpt = get_the_excerpt($post_id); // 可以指定文章ID
// 然后可以对 $my_excerpt 进行自定义处理
通过灵活运用这些方法和过滤器,你可以完全控制 WordPress 文章摘要的显示方式,使其完美适配你的网站设计和用户体验需求。