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 …
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?
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
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.
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