Formas de limitar el tamaño de los extractos y del contenido en general
|Cuando se quiere mantener el control de nuestro diseño, es posible que una de las cosas que senos venga a la cabeza es la de limitar el tamaño de algunos de los contenidos en ciertas instancias. Por ejemplo, podemos modificar el tamaño tanto de los extractos como el de los contenidos, de esta manera podemos adaptar el diseño a los contenidos según las necesidades que se presenten.
Limitar el tamaño de los extractos
WordPress integra una característica importante desde versiones recientes y es la de poder limitar el tamaño de los extractos con una función de apenas unas cuántas líneas la cual deberemos colocar en el functions.php de nuestra plantilla. Esto podemos hacerlo de la siguiente manera:
function new_excerpt_length($length) {
return 30;
}
add_filter('excerpt_length', 'new_excerpt_length');
En la anterior función podemos observar que hay un valor numérico que es devuelto por la función, este valor representa el número de caracteres al cual queremos limitar los extractos. Pero también podemos crear una función un poco más completa en donde podemos indicar el valor en forma de parámetro. La función es la siguiente:
function excerpt($num) {
$limit = $num+1;
$excerpt = explode(' ', get_the_excerpt(), $limit);
array_pop($excerpt);
$excerpt = implode(" ",$excerpt)."...";
echo $excerpt;
}
Para la anterior función bastará con colocar el número de caracteres como parámetro de la siguiente manera:
Limitar el tamaño de los contenidos en general
Ahora, si lo que queremos en ve de limitar el tamaño de los extractos es limitar el tamaño del contenido en general, es decir, el que se muestra en el index podemos utilizar una función similar al anterior código, en donde el uso es el mismo, se coloca el nombre de la función y se pasa como parámetro el número de caracteres que se quieren mostrar.
function content($num) {
$theContent = get_the_content();
$output = preg_replace('/<img[^>]+./','', $theContent);
$limit = $num+1;
$content = explode(' ', $output, $limit);
array_pop($content);
$content = implode(" ",$content)."...";
echo $content;
}
Como un “bonus” a esta pequeña guía podemos cambiar el texto que aparece al final de cada extracto, por lo general al ver el functions.php de la plantilla sabremos que linea modificar, pero en el caso de que el tema no tenga esas líneas de código podemos usar estas:
function new_excerpt_more($more) {
return '[siga leyendo .....]';
}
add_filter('excerpt_more', 'new_excerpt_more');