在我的例子中,我使用(封闭的)短代码来格式化文本。所以需要的是,短代码不会被删除,因为它会从句子中删除单词。
所以我做了一些修改,找到了这个片段,它有助于去掉短代码,但保留了单词:https://wordpress.stackexchange.com/a/229879/33303
它删除了\\u摘录的默认过滤器,并将其替换为自定义函数。我想这会给我带来更多的问题;),但在这种情况下,它会有所帮助。
function ntt_custom_excerpt($text = \'\') {
$raw_excerpt = $text;
if ( \'\' == $text ) {
$text = get_the_content(\'\');
// $text = strip_shortcodes( $text );
$text = do_shortcode( $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);
}
remove_filter( \'get_the_excerpt\', \'wp_trim_excerpt\' );
add_filter( \'get_the_excerpt\', \'ntt_custom_excerpt\' );