Formatos en los extractos automáticos

extracto excerpt wordpress

Los extractos de WordPress son una maravilla, un elemento a tener en cuenta siempre, pues son esa pequeña parte del texto que se muestra en la portada de nuestra web que, cuando están bien hechos, consiguen atraer el interés del lector sobre el artículo en cuestión.

Además, actualmente la mayoría de los temas WordPress modernos usan extractos en portada. Salvo los temas estilo Blog, todos los demás (rejilla, revista, portafolio, etc) muestran extractos en portada aunque no se definan expresamente, la mayoría los crean automáticamente.

Por supuesto, siempre puedes forzar los extractos mediante la etiqueta «more« del editor, o gracias a la maravillosa caja meta del editor de WordPress, pero es una liturgia que pocos blogueros utilizan, aunque deberían.

Y luego está el tema de los formatos …

extracto personalizado con formato y html wordpress

Si usas la caja de extractos puedes crearlos con HTML, o incluso hacerlo WYSIWYG como ya vimos, pero tanto si creas los extractos mediante la etiqueta «more» como si el tema los genera automáticamente debes saber que WordPress eliminará todos los formatos del texto, todo el HTML y los shortcodes.

Este funcionamiento por defecto, que suele ser la mejor opción la mayoría de las veces, no siempre es lo deseado. Está bien que ofusque los shortcodes porque podrían destrozar tu portada con funcionalidades extra que arruinarían tu diseño, pero en muchas ocasiones querrías destacar algún texto en negrita en portada, o incluso algún enlace (sin pasarse), y WordPress por defecto los fulmina en los extractos.

Pero todo tiene solución en WordPress, y esto también, así que si quieres que WordPress no elimine los formatos en los extractos automáticos puedes crear esta función y añadirla a tu plugin de funciones o al fichero functions.php de tu tema activo:

//Formato en extractos
function custom_wp_trim_excerpt($text) {
$raw_excerpt = $text;
if ( '' == $text ) {
//Recupera el contenido de la entrada.
$text = get_the_content('');
$text = strip_shortcodes( $text );
$text = apply_filters('the_content', $text);
$text = str_replace(']]>', ']]>', $text);

// el siguiente código establece el extracto a 55 palabras - puedes cambiar este número al que mejor se ajuste a tu web
$excerpt_length = apply_filters('excerpt_length', 55);

// el siguiente código define qué aparece al final del extracto, en este caso …
$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 = force_balance_tags( $text );
$text = $text . $excerpt_more;
} else {
$text = implode(' ', $words);
}

}
return apply_filters('wp_trim_excerpt', $text, $raw_excerpt);
}
remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'custom_wp_trim_excerpt');

Cuando termines guardas los cambios y a partir de ese momento los extractos respetarán los formatos del texto, pero no los shortcodes, lo que no deja de ser la mejor opción ¿no crees?

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(8 votos, promedio: 4.5)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado.

2 comentarios en “Formatos en los extractos automáticos”

  1. Los extractos como me han servido para mejorar el formato de las páginas con las cuales trabajo, gracias por el tip, ahora mi trabajo sera mejor.

  2. Muy buen post amigo me ayudo bastante y ahora si quiero que me muestre el formato de los shortcodes crees que exista una solucion a este problema ya que yo los uso para mostrar poca inforamacion con este formato
    saludos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Ir arriba Ir al contenido