请允许我提出一个替代方案。与其为所有帖子设置摘录的长度,不如为单个帖子修剪它。我们可以吗?
为此,我们可以使用get_the_excerpt
滤器如果查看有关此过滤器的相应页面,您会注意到代码示例使用is_attachment()
, 这意味着您可以访问全球$wp_query
.
我们在get_the_excerpt
筛选,并使用自定义函数修剪摘录:
add_filter( \'get_the_excerpt\', \'custom_excerpt_more\' );
function custom_excerpt_more( $excerpt ) {
// Get the current post
$post = get_post();
// Calculate the length of its title
$charlength = strlen( $post->post_title );
$charlength++;
if ( mb_strlen( $excerpt ) > $charlength ) {
$subex = mb_substr( $excerpt, 0, $charlength - 5 );
$exwords = explode( \' \', $subex );
$excut = - ( mb_strlen( $exwords[ count( $exwords ) - 1 ] ) );
if ( $excut < 0 ) {
$output = mb_substr( $subex, 0, $excut );
} else {
$output = $subex;
}
$output .= \' ...\';
return $output;
} else {
return $excerpt;
}
}
给你。您的摘录现在被其帖子标题删减。