Yo creo que con excerpt no te funciona porque estás metiendo un <p> dentro de otro <p> (el que genera el excerpt). Es decir, estás intentando algo así:
y claro, eso no es correcto. Un párrafo no puede contener otro párrafo.
No sé si habrá otra solución mejor pero puedes intentar con esto en functions.php:
Código PHP:
Ver originaladd_filter( 'the_excerpt', 'add_class_to_excerpt' );
function add_class_to_excerpt( $excerpt ) {
return str_replace('<p', '<p class="excerpt"', $excerpt); }
Y en style.css: