Si usas un tema abigarrado, de esos que están tan de moda últimamente, los de estilo revista (o magazine) seguramente te hayas dado de bruces más de una vez con el problema de la limitación de los títulos, pues tienes que controlarte o se descuadrará tu tema, no se verán bien los títulos y cualquier otro desastre estético.
Afortunadamente todo tiene solución en WordPress, y más con un poquito de código. Vamos a ver como hacerlo en solo 2 pasos …
1. Añadiendo la función
Para empezar abrimos el fichero functions.php
de tu tema y añadimos uno de los siguientes códigos:
Acortar títulos por palabras
/* Acortando títulos por palabras */ function titulo_corto($after = '', $length) { $mytitle = explode(' ', get_the_title(), $length); if (count($mytitle)>=$length) { array_pop($mytitle); $mytitle = implode(" ",$mytitle). $after; } else { $mytitle = implode(" ",$mytitle); } return $mytitle; }
Acortar títulos por caracteres
/* Acortando títulos por caracteres */ function titulo_corto($after = null, $length) { $mytitle = get_the_title(); $size = strlen($mytitle); if($size>$length) { $mytitle = substr($mytitle, 0, $length); $mytitle = explode(' ',$mytitle); array_pop($mytitle); $mytitle = implode(" ",$mytitle).$after; } return $mytitle; }
Guardas los cambios en el fichero.
2. Modificando el loop
Una vez elegido el tipo de acortamiento, con uno de los códigos anteriores, solo nos queda sustituir el código de impresión de los títulos en – normalmente – index.php
. Buscamos algo similar a este código …
<h2 class="title"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php echo titulo_corto('...', 12); ?></a></h2>
y lo sustituimos por este otro:
<h2 class="title"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php echo titulo_corto('...', 12); ?></a></h2>
Dependiendo del código elegido te mostrará, en este ejemplo, 12 palabras o 12 caracteres, completando el resto con los socorridos puntos suspensivos '…'
. Además, al colocar el cursor sobre el mismo nos mostrará el nombre completo (the_title()
), para que no nos perdamos.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Muy bueno ^^ yo estaba buscando eso ya hace tiempo.
Al mostrar el titulo completo en el atributo "title", no sería mejor usar the_title_attribute en lugar de the_title? Asi no se "rompe" el enlace cuando hay comillas…
¿Qué diferencia hay entre las dos líneas?
2. Modificando el loop
[…]
?php echo titulo_corto('…', 12); ?>
y lo sustituimos por este otro:
?php echo titulo_corto('…', 12); ?>
@JuanDxvid Al parecer se confundio al colocar el codigo, creo que seria reemplazar esta Linea:
<code> <a title="" href="" rel="bookmark"></code>
por algo como esto:
<code></code>
Listo, comprobado y funcionando Correctamente (Y)!
buen truco amigo, 100% funcional, gracias por el codigo. Pero hay un error en el reemplazo de codigo .
Codigo que se muestra:
<h2 class="title">">?php echo titulo_corto('…', 12); ?></h2>
Deberia ser asi
"><?php echo titulo_corto('…', 12); ?>
Creo que falto una llave de apertura < en el titulo.
Saludos pero entendible, gracias por el codigo…
excelente funcion!! re agradecido, no sabes de una parecida para los extractos?
Buen post, pero en el codigo que hay que modificar en el loop y que se ofrece para copiar, falta un < justo delante de ?php echo titulo_corto
<a href="» rel=»bookmark» title=»»>Con este codigo, funciona sin problema. Gracias por la idea.
Más que faltar es que lo puse al revés, gracias por avisar 🙂
Hola, como puedo utilizar este truco en un widget? tengo un theme al que agrego un widget para mostrar los titulos de unos eventos pero en el widget el titulo se sale de la página
Hola Fernando, felicidades por el post, permiteme una pregunta, como podria hacer para recortar los titulos pero en los widgets??, por ejemplo, en el widget de ultimas entradas me sale el titulo entero, y me descuadra todo el diseño,como puedo hacer para recortarlo??
Gracias y salu2