Cómo utilizar the_excerpt_reloaded (WordPress)
Hace unos días estamos preparando un cambio de theme para Kaos Klub. Haciéndolo hemos aprendido mucho sobre diseño, y una de las funciones de código PHP que más nos ha servido es la que se utiliza para mostrar resúmenes de los posts en portada. La que está por defecto es the_content; una modificación de ésta también incluída en WordPress es the_excerpt; un plugin de ella es the_excerpt_reloaded, y nosotros utilizamos un mod de este último.
En esta entrada explico todas las modificaciones que hemos hecho a esta función para conseguir lo que nosotros queremos, todo de modo muy fácil de entender y práctico.
the_content
Esta función esta explicada en kaosklub.com > the_content y en codex.wordpress.org > the_content
the_excerpt
Esta función está explicada en kaosklub.com > the_excerpt y en codex.wordpress.org > the_excerpt
the_excerpt_reloaded
La función the_excerpt nos puede servir para mostrar los contenidos cortados por un X número de carácteres. Pero aunque no queramos elimina todos los estilos (negritas, saltos de línea, cusivas, enlaces, imágenes…) del contenido.
Para utilizar the_excerpt pero poder utilizar estilos tenemos the_excerpt reloaded, un plugin que permite:
- Escoger qué tags HTML serán leídas por la función y cuáles no.
- Escoger el número de palabras a mostrar
- Otras opciones
Las instrucciones sobre cómo utilizarlo las tenemos en la web del plugin. Básicamente tenemos que situar el código en el mismo lugar en el que está the_content, pero de esta manera:
<?php the_excerpt_reloaded(80, ‘<a><strong><div><h3><h4><form><b><i><u><li><ul><em><blockquote>’, ‘none’, TRUE, ‘Leer más…’, TRUE, 2, TRUE, TRUE); ?>
En Ayuda WordPress > the_excerpt_reloaded se explica como utilizarlo. Por ejemplo, el código que actualmente utilizamos en Kaos Klub es el siguiente:
excerpt_length: default=120
allowedtags: default='< a>’
filter_type: default=’none’
use_more_link: default=true
more_link_text: default=”(Leer más…)”
force_more: default=false
fakeit: default=1
fix_tags: default=true
——————————– Los siguientes argumentos son los indocumentados ——————————–
no_more: default=false (este argumento lo utilizamos para ignorar la tag . Sino, la función the_excerpt_reloaded no funcionaría si el post tuviera esa tag)
more_tag: default=’div’
more_link_title: default=’Continuar leyendo’
showdots: default=true
the excerpt_reloaded mod
Puesto que the_excerpt_reloaded corta el código cuando ha llegado a un número determinado de palabras y según el código, puede pasar que en un post se corte entre 2 tags. Por ejemplo, puede que se corte entre y , y que entonces el código no lea el fin de la negrita y toda la web salga en negrita. En teoría the_excerpt_reloaded ya lo hace (sería el argumento fix_tags), pero resulta que no funciona.
Para solucionarlo tenemos un mod de the_excerpt_reloaded, (ver actualización también aquí), que sirve para cerrar todas las tags. Este es el que utilizamos nosotros y sí funciona, al menos siempre que fix_tags sea TRUE.
the excerpt_reloaded mod del mod
Con el resultado final, el único problema que teníamos es que los textos escritos [entre claudators], que en teoría solo deben verse en modo HTML, se veían (por ejemplo les [wp caption] de las imágenes).
Lo hemos solucionado gracias a este post de wordpress.org, que básicamente dice que añadamos
// get rid of the [captions]s<br />
$text = preg_replace( ‘|[(.+?)](.+?[/\1])?|s’, ”, $text );
en la línea 102 del excerpt_reloaded.php… yo lo he puesto justo antes de:
if($excerpt_length < 0) {
plugin Advanced Excerpt
El plugin Advanced Excerpt viene a ser lo mismo que the_excerpt_reloaded, sólo que no es necesario cambiar el código del theme. Para ello sustituye el the_content con los parámetros configurables desde el panel de administración de WordPress. Además, también permite utilizar el Custom Field “excerpt” que viene por defecto en WordPress siempre que no esté en blanco. O sea: es como the_excerpt_reloaded pero más sencillo, y quizás mejor.
En Kaos Klub utilizamos the_excerpt_reloaded porque fue el primero que utilizamos y ya nos funciona bien. Además, los parámetros de Advanced Excerpt son menores (por ejemplo no permiten escoger que texto se escribe como “Leer más…”) y desconocemos si este plugin cierra bien las tags.
Hola, voy a probar el plugin
¿Cómo se tendría que hacer para conseguir que en el index del sitio los posts se vean con imagenes pequeñas y al hacer click en los artículos la imagen aparezca más grande, tal cual se ve en este blog.
Muchas gracias.