追溯:
the_excerpt()
当您查看
the_excerpt()
, 然后您将找到以下函数定义:
function the_excerpt() {
echo apply_filters(\'the_excerpt\', get_the_excerpt());
}
这意味着
get_the_excerpt()
保存普通的未过滤内容。
get_the_excerpt()
当您查看
get_the_excerpt()
, 您将发现以下内容:
function get_the_excerpt( $deprecated = \'\' ) {
if ( !empty( $deprecated ) )
_deprecated_argument( __FUNCTION__, \'2.3\' );
global $post;
$output = $post->post_excerpt;
if ( post_password_required($post) ) {
$output = __(\'There is no excerpt because this is a protected post.\');
return $output;
}
return apply_filters(\'get_the_excerpt\', $output);
}
所以又添加了过滤器
get_the_excerpt()
.
默认筛选器(&M);wp_trim_excerpt()
可以在内部找到连接到某个对象的所有核心过滤器
~/wp-includes/default-filters.php
.
在那里,您可以找到(WP版本3.4)以下过滤器:wp_trim_excerpt()
on Line #147.
这个wp_trim_excerpt()
函数从内部看起来如下所示:
function wp_trim_excerpt($text = \'\') {
$raw_excerpt = $text;
if ( \'\' == $text ) {
$text = get_the_content(\'\');
$text = strip_shortcodes( $text );
$text = apply_filters(\'the_content\', $text);
$text = str_replace(\']]>\', \']]>\', $text);
$excerpt_length = apply_filters(\'excerpt_length\', 55);
$excerpt_more = apply_filters(\'excerpt_more\', \' \' . \'[...]\');
$text = wp_trim_words( $text, $excerpt_length, $excerpt_more );
}
return apply_filters(\'wp_trim_excerpt\', $text, $raw_excerpt);
}
我们有什么选择只需移除过滤器,就可以将这些函数中的每一个与所有不需要的过滤器一起使用。但这也意味着,你将把它们从其他一切中移除。
调用平原->excerpt
, 在任何情况下都会为您提供摘录,除非没有摘录。也就是说,你can insert scripts
and CDATA
tags as explained in this answer, 但还必须处理密码后检查,以及返回您需要的所有过滤器。