the_excerpt y shortcodes
Estoy usando the_excerpt en mi página de índice. También estoy usando un shortcode de letra capital al inicio de cada una de mis publicaciones. En la página de índice, las publicaciones no muestran la letra con el shortcode alrededor. Si mi publicación comienza con la palabra "Perro", la página de índice muestra "erro". ¿Cómo hago que los shortcodes funcionen cuando uso the_excerpt?
Shortcode
function drcap ($atts, $content = null) {
// Función que crea una letra capital con formato
return '<div class="dropcap">' . do_shortcode($content) . '</div>';
}
// Registrar el shortcode 'dropcap'
add_shortcode('dropcap', 'drcap');
En los extractos generados automáticamente, los shortcodes serán eliminados por WordPress:
Un extracto generado automáticamente también eliminará todos los shortcodes y etiquetas. Se recorta hasta un límite de palabras y la longitud predeterminada es de 55 palabras.
Sin embargo, si utilizas el campo de extracto manual para tu publicación, sí funciona.

Aquí tienes una solución para incluir la salida de shortcodes en los extractos generados automáticamente por WordPress:
add_filter('the_excerpt', 'do_shortcode');
remove_filter('get_the_excerpt', 'wp_trim_excerpt', 10);
add_filter('get_the_excerpt', 'my_custom_wp_trim_excerpt', 99, 1);
function my_custom_wp_trim_excerpt($text) {
if(''==$text) {
$text= preg_replace('/\s/', ' ', wp_strip_all_tags(get_the_content('')));
$text= explode(' ', $text, 56);
array_pop($text);
$text= implode(' ', $text);
}
return $text;
}
Esta implementación asume una longitud de 55 palabras.
Espero que le sea útil a alguien.
