Na verdade, eu fiz algo assim para um site do Drupal. Eu baseei minha função de truncamento nisto: Truncar texto preservando tags HTML com PHP
Use a versão final da função no final dos comentários. A função usa seu parâmetro $length
em caracteres, não em palavras, mas você provavelmente pode usar a regra geral geral de 5 caracteres por palavra para estimar, se necessário.
Conecte sua função ao filtro get_the_excerpt
e você deve estar em boa forma.