除了Deepa的答案提供的上述过滤器挂钩之外,这里还有一个附加功能,可以帮助您扩展the_excerpt
在两个方面,
允许您
限制摘录的字符数,但不要截断最后一个单词。这将允许您返回最大数量的字符,但保留完整的单词,因此仅返回符合指定数量限制的单词,并允许您指定摘录的来源。
function get_excerpt($limit, $source = null){
$excerpt = $source == "content" ? get_the_content() : get_the_excerpt();
$excerpt = preg_replace(" (\\[.*?\\])",\'\',$excerpt);
$excerpt = strip_shortcodes($excerpt);
$excerpt = strip_tags($excerpt);
$excerpt = substr($excerpt, 0, $limit);
$excerpt = substr($excerpt, 0, strripos($excerpt, " "));
$excerpt = trim(preg_replace( \'/\\s+/\', \' \', $excerpt));
$excerpt = $excerpt.\'... <a href="\'.get_permalink($post->ID).\'">more</a>\';
return $excerpt;
}
/*
Sample... Lorem ipsum habitant morbi (26 characters total)
Returns first three words which is exactly 21 characters including spaces
Example.. echo get_excerpt(21);
Result... Lorem ipsum habitant
Returns same as above, not enough characters in limit to return last word
Example.. echo get_excerpt(24);
Result... Lorem ipsum habitant
Returns all 26 chars of our content, 30 char limit given, only 26 characters needed.
Example.. echo get_excerpt(30);
Result... Lorem ipsum habitant morbi
*/
此函数可以在整个主题文件中多次使用,每个文件都指定了不同的字符限制。
此函数能够检索以下内容的摘录:,
例如,如果您的帖子在帖子编辑器屏幕上的\\u摘录框中包含文本,但希望从\\u内容正文中提取摘录,而不是针对特殊用例,那么您可以这样做;
get_excerpt(140, \'the_content\'); //excerpt is grabbed from get_the_content
这会告诉函数您希望从中获得前140个字符
the_content
, 无论是否在中设置摘录
the_excerpt
盒
get_excerpt(140); //excerpt is grabbed from get_the_excerpt
这会告诉函数您希望从中获得前140个字符
the_excerpt
首先,如果没有摘录,
the_content
将用作回退。
该功能可以改进,以提高效率,或结合使用WordPress过滤器the_content
或the_excerpt
或者只是在有no suitable, 内置WordPress API替代方案。