Esto es lo que agregué en el archivo functions.php de mi tema para habilitar el formato de extractos en Wordpress ( fuente de la punta ):
remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'bwp_trim_excerpt');
function bwp_trim_excerpt($text)
{
$raw_excerpt = $text;
if ( '' == $text ) {
$text = get_the_content('');
$text = strip_shortcodes( $text );
$text = apply_filters('the_content', $text);
$text = str_replace(']]>', ']]>', $text);
$text = strip_tags($text, '<em><strong><i><b><a><code>');
$excerpt_length = apply_filters('excerpt_length', 55);
$excerpt_more = apply_filters('excerpt_more', ' ' . '[...]');
$words = preg_split("/[\n\r\t ]+/", $text, $excerpt_length + 1, PREG_SPLIT_NO_EMPTY);
if ( count($words) > $excerpt_length ) {
array_pop($words);
$text = implode(' ', $words);
$text = $text . $excerpt_more;
} else {
$text = implode(' ', $words);
}
}
return apply_filters('wp_trim_excerpt', $text, $raw_excerpt);
}
El problema con habilitar el formato en los extractos de publicaciones parece ser que, si el texto está formateado por una etiqueta (ya sea <b>
, <strong>
, <i>
, <em>
, o cualquier otro) ) está cortado por el extracto intermedio, la etiqueta anulará el formato de toda la página. Echa un vistazo a esta captura de pantalla, por ejemplo:
Creo que esa es la razón por la que el formato de los extractos no está habilitado de forma predeterminada. ¿Hay alguna forma de arreglar esto? ¿Hay algún problema con el código?
Espero que pueda obtener ayuda aquí. Gracias!