可以使用正则表达式(regexp)获取前一段或前两段
function custom_excerpt( $content = \'\' ){
if( empty( $content ) )
return $content;
$result = \'\';
$matches = array();
// grab all paragraphs from $content
preg_match_all( \'#<\\s*p[^>]*>(.*?)<\\s*/\\s*p>#ui\', $content, $matches );
if( ! empty( $matches ) ){
// add the first paragraph
$result = $matches[0][0];
// add the swecond paragraph if available
if( isset( $matches[0][1] ) )
$result .= $matches[0][1];
// set the excerpt length
add_filter( \'excerpt_length\', \'custom_excerpt_length\' );
// create the custom excerpt
$result = custom_trim_excerpt( $result );
}
return $result;
}
function custom_excerpt_length(){
return 295;
}
function custom_trim_excerpt( $text = \'\' ){
$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 $text;
}
使用调用函数
<?php print custom_excerpt( get_the_content( \'Read More\' ) ); ?>
这有点棘手,因为你不能交出
wp_trim_excerpt()
文本。
wp_trim_excerpt()
将只返回文本(如果给定)。您必须稍微复制和自定义该函数。