Como ya sabes, WordPress te da la posibilidad de mostrar, en las páginas de archivo, el post completo o bien solamente un extracto. Sin embargo no se puede configurar cuál será la longitud del extracto mostrado por WordPress.
Pero que la opción no esté en los menús no significa que no pueda hacerse. De hecho en este artículo vamos a ver qué formas tenemos de establecer la longitud del extracto en WordPress, tanto manualmente como mediante código.
Tabla de contenidos
Qué es el extracto y cuándo se muestra
El extracto no es más que un resumen o una pequeña descripción del contenido de una entrada, que WordPress puede mostrar en las páginas de archivo:
- Página de categoría
- Página de etiquetas
- Resultados de búsquedas
- Archivo mensual
- Archivo de autor
Y ojo porque he dicho puede mostrar, ya que es algo totalmente opcional… para el creador de la plantilla que estés usando. Por lo general, mostrar el extracto o la entrada completa depende de si en el loop se ha utilizado la función the_excerpt () o the_content ().
Por tanto, si tu plantilla muestra el extracto y quieres mostrar la entrada completa, o al revés, tendrás que editar la plantilla. Por supuesto, en estos casos lo más recomendable es hacer uso de un child theme o tema hijo, según explico en esta entrada.
Establecer el contenido del extracto manualmente
Pero ése no es el tema de hoy y lo trataré en otro artículo. Porque lo que queremos ver hoy es cómo controlar el contenido de ese extracto. Por defecto WordPress utiliza para crearlo automáticamente las primeras 55 palabras del post pero, como vamos a ver hoy, podemos hacer algunas cosas para cambiar eso.
Extracto manual
Lo primero que podemos hacer es crear un extracto manual. Es algo más trabajoso, pero nos da un control absoluto sobre el contenido del extracto. Para ello, lo primero de todo, hay que hacer visible la caja de edición del extracto.
Así que sólo tienes que ir a una entrada y, en la esquina superior derecha, pulsar en la pestaña Opciones de pantalla, y cuando éstas se desplieguen activar la correspondiente al extracto. Puedes verlo en esta imagen:
Una vez hecho esto aparecerá una caja de edición llamada Extracto bajo el editor principal de la entrada. Cualquier contenido que pongas ahí se utilizará como extracto, por largo que sea. Si lo dejas vacío se mostrará el extracto automático (o bien, la entrada completa, según esté hecha la plantilla).
Extracto vs. adelanto: el tag Mostrar más
Aunque en realidad esto no es del todo cierto. Si hay un extracto manual, éste se mostrará, sí; pero si no lo hay, antes de crear uno automático WordPress hará una última comprobación: va a mirar si existe un adelanto.
Un adelanto es la parte inicial de la propia entrada que nosotros elegimos para que aparezca en lugar del extracto. ¿Cómo elegirla? Pues haciendo uso de la etiqueta More o Mostrar más.
Esta etiqueta puedes insertarla automáticamente en el lugar donde quieras que se sitúe el límite del adelanto utilizando el botón correspondiente de la barra de edición, que es el que puedes ver en esta captura de pantalla:
También, si prefieres, puedes insertarla en la ventana de HTML con la tag:
Controlar el extracto mostrado mediante código
Una vez que WordPress ha comprobado que no existe un extracto manual y que no está presente la etiqueta More, decide crear un extracto automático.
Y para ello, como decía al principio, coge las primeras 55 palabras de la entrada y les añade al final un […]. Ya está, donde quede el corte, ha quedado. Son 55, ni una más, ni una menos.
Pero nosotros podemos cambiar esto utilizando una sencilla función. Como de costumbre, se trata de colocarla al final del archivo functions.php de tu plantilla (realiza siempre antes copia de seguridad) o, mucho más recomendable, usando un plugin de funciones personalizado, tal y como explico en esta entrada.
Limitar el número de palabras
Cambiar el número de palabras que entrarán en el extracto es, como decía, muy sencillo, gracias a que WordPress pone a nuestra disposición un filtro para hacerlo. Básicamente, y sin utilizar tecnicismos, basta con usar esta función:
function ejr_limite_extracto ($longitud) {
return 55;
}
add_filter ('excerpt_length', 'ejr_limite_extracto', 999);
Y ya está, así de sencillo. Hombre, si pones la función tal y como estará ahí no cambiará absolutamente nada. La gracia es que puedes cambiar ese return 55; por el número de palabras que quieras que incluya el extracto.
Bonus: quitar el […] del final o sustituirlo por otra cosa
Pero aún podríamos ir un poco más lejos, y cambiar ese soso […] que no invita a nada por una llamada a la acción algo más contundente. Por ejemplo un enlace con el texto Lee la entrada completa o Continúa leyendo.
Para eso necesitamos otra función, también muy sencilla, gracias a otro filtro de WordPress:
function ejr_nuevo_excerpt ($more) {
global $post;
return 'Lee la entrada completa';
}
add_filter ('excerpt_more', 'ejr_nuevo_excerpt');
Y listo, ya ves que sencillo es personalizar los extractos, tanto si los haces manualmente como de forma automática, adaptándolo a nuestras necesidades.
Como siempre, para cualquier pregunta, duda, consulta o lo que quieras, tienes a tu disposición tanto los comentarios como el formulario de contacto.