Con the_excerpt podemos limitar la cantidad de texto que se muestra de un artículo, podemos modificarla dependiendo del lugar donde queremos mostrar este artículo.
Comencemos explicando como funciona un post de manera común.
1
|
<?php the_content(); ?>
|
Como vemos incluye a las imágenes y al texto, esto puede ser utilizado además con la etiqueta o tag <!–more–> para dividir en dos partes el artículo al momento de publicarlo. Se puede leer la porción del post anterior al “more” y para leer la parte posterior al “more” se debe acceder al artículo.
Pero cuando estamos trabajando con una lista de mini-artículos, o una lista de noticias recomendadas no nos podemos valer de esta herramienta porque nos quedaría una lista muy extensa y probablemente desordenada.
Aquí es cuando el valor de the_excerpt entra en juego. Con una serie de funciones les explicaré como utilizar esta herramienta.
1
|
<?php the_excerpt(); ?>
|
Podemos ver que la imagen que tenía el post no se ve cuando se utiliza la función the_excerpt. De manera automática se toman en cuenta las primeras 55 palabras que contiene el artículo y se muestra al final del segmento “[…]”
Para poder dinamizar el trabajo hay tres trucos que podemos utilizar.
Definir la cantidad de palabras de the_excerpt (en general para todas las veces que lo utilicemos)
Como aclaré en el subtítulo, cuando utilizamos esta herramienta todos los segmentos delimitados con the_excerpt tendrán la misma cantidad de palabras.
Se debe agregar en la hoja functions.php
el siguiente código
1
2
3
4
|
function new_excerpt_length($length) {
return 20; <!—Definir cantidad de palabras—>
}
add_filter(‘excerpt_length’, ‘new_excerpt_length’);
|
Definir la cantidad de palabras de the_excerpt (para cada lugar donde se utilice en especial)
Como primera medida, se debe añadir este código desarrollado por bavotasan.com en la hoja functions.php
1
2
3
4
5
6
7
8
9
10
11
|
function excerpt($limit) {
$excerpt = explode(‘ ‘, get_the_excerpt(), $limit);
if (count($excerpt)>=$limit) {
array_pop($excerpt);
$excerpt = implode(” “,$excerpt).‘…’;
} else {
$excerpt = implode(” “,$excerpt);
}
$excerpt = preg_replace(‘`\[[^\]]*\]`’,”,$excerpt);
return $excerpt;
}
|
Para añadirlo en cualquier sección de la página debemos colocar el siguiente código
1
|
<?php echo excerpt(65); ?>
|
Dependiendo de que cantidad de palabras necesitemos cambiamos el número entre los paréntesis y listo.