Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPB Cup
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Cómo truncar automáticamente los títulos de las entradas de blog en WordPress

Cuando lanzamos nuestro primer sitio de WordPress con mucho contenido, nunca pensamos que los títulos de las entradas del blog serían un problema. Algunos de nuestros títulos más largos rompían nuestra bonita estructura / disposición / diseño / plantilla, mientras que otros simplemente se veían desordenados en los dispositivos móviles.

Tras años gestionando múltiples sitios WordPress y ayudando a los propietarios de sitios web, hemos descubierto que recortar los títulos de las entradas ayuda a garantizar un aspecto coherente y refinado que mantiene la atención de su público.

En esta guía, compartiremos técnicas efectivas para acortar automáticamente los títulos de tu blog WordPress con PHP, ayudándote a mantener todo en orden.

How to Automatically Truncate Blog Post Titles in WordPress

¿Por qué truncar títulos de entradas en WordPress con PHP?

Truncar títulos de entradas en WordPress con PHP le da más control sobre la longitud de los títulos de sus entradas y cómo se muestran en su sitio web.

Por ejemplo, es posible que desee cortar los títulos de entradas largas en su página de inicio para que no desentonen con el diseño de su blog de WordPress.

Truncate posts example

De este modo, tu blog será visualmente agradable y fácil de navegar para tus lectores.

Nota: Si su objetivo es optimizar las entradas de su blog para SEO utilizando títulos más cortos, el truncamiento puede no ser necesario. En su lugar, un plugin SEO para WordPress puede simplificar la creación de etiquetas de título SEO cortas y eficaces.

Recomendamos All in One SEO (AIOSEO) porque le permite crear títulos SEO personalizados para las páginas de resultados de búsqueda y, al mismo tiempo, mantener títulos de entradas más largos para los visitantes de su sitio.

Para más detalles, consulte nuestra guía definitiva sobre cómo establecer AIOSEO correctamente.

Ahora, exploremos dos formas de truncar los títulos de las entradas de WordPress en su sitio usando PHP:

Método 1: Truncar los títulos de las entradas de WordPress con una función de WordPress

La forma más sencilla de truncar los títulos de las entradas en WordPress es añadiendo código PHP a tus archivos de WordPress. Si no ha hecho esto antes, entonces marque / compruebe nuestra guía sobre cómo copiar y pegar código en WordPress.

Muchos tutoriales te dirán que añadas código directamente al archivo functions.php de tu tema. Sin embargo, cualquier error podría causar errores o incluso romper su sitio.

Por eso te recomendamos que utilices el plugin gratuito WPCode. Se trata de una práctica herramienta que facilita la adición y gestión de código personalizado en su sitio de WordPress, sin necesidad de cambiar directamente los archivos del tema.

En WPBeginner, confiamos en el plugin para añadir y gestionar nuestros fragmentos de código personalizados. Puedes comprobar nuestra reseña / valoración completa de WPCode para saber más.

Primero, necesitas instalar y activar el plugin gratuito WPCode. Si necesitas ayuda con esto, consulta nuestra guía paso a paso sobre cómo instalar un plugin de WordPress.

Una vez activado, seleccione Fragmentos de código ” + Añadir fragmento en la barra lateral de administración. A continuación, pase el cursor sobre la opción “Añadir su código personalizado (nuevo fragmento)” y haga clic en el botón “Añadir fragmento personalizado” que aparece.

WPCode add custom code

Se abrirá una nueva página en la que podrá escribir un título para el fragmento de código y, a continuación, añadir el código.

Simplemente copie y pegue el siguiente código en el panel de vista previa de código en WPCode.

1
2
3
4
5
6
7
8
9
10
function max_title_length( $title ) {
$max = 35;
if( strlen( $title ) > $max ) {
return substr( $title, 0, $max ). " …";
} else {
return $title;
}
}
 
add_filter( 'the_title', 'max_title_length');

Este es el aspecto que debe tener una vez añadido el código.

Truncating Headlines Using WPCode

Este código se ejecutará dentro del bucle de entradas de WordPress y acortará los títulos de las entradas de tu blog a 35 caracteres. Para cambiar la longitud del título, establezca la variable $max en la longitud que prefiera.

Si necesitas ayuda, comprueba nuestro artículo sobre cómo añadir código personalizado en WordPress.

A continuación, seleccione “Fragmento de código PHP” en el menú desplegable Tipo de código.

Por último, tendrá que establecer el ajuste Activo y, a continuación, guardar el fragmento de código haciendo clic en el botón “Guardar fragmento de código”.

Truncating Headlines Using WPCode

Ahora que el fragmento de código está activado, los títulos de las entradas de tu blog se acortarán dondequiera que aparezcan en tu sitio web de WordPress.

Como se muestra en la siguiente captura de pantalla, el título se detiene en 35 caracteres y va seguido de una elipsis ‘…’ al final.

WPCode truncation example

Método 2: Truncar los títulos de las entradas de WordPress con PHP cambiando los archivos del tema de WordPress

Otra forma de truncar los títulos de las entradas de WordPress es añadiendo código directamente a los archivos de su tema de WordPress.

Este método le da más control sobre dónde se acortan sus títulos. Por ejemplo, es posible que desee cortar los títulos en su página de inicio solo, pero mostrar el título completo en la entrada del blog.

⚠️ Pro Tip: Antes de continuar con el Método 2, recuerde que la actualización de su tema puede sobrescribir los cambios personalizados.

Para mantener su sitio actualizado sin perder sus personalizaciones, compruebe nuestra guía sobre cómo actualizar su tema de WordPress sin perder la personalización.

Para ello, deberá añadir el código PHP directamente a los archivos del tema de WordPress donde desee truncar los títulos de las entradas de su blog.

Por ejemplo, puede añadir el fragmento de código siguiente a su archivo index. php para sustituir la etiqueta the_title existente dentro del bucle de entradas de WordPress y cambiar la longitud del título en todo el sitio:

1
2
3
4
5
6
7
8
9
<a href="<?php the_permalink() ?>">
<?php
$thetitle = $post->post_title; /* or you can use get_the_title() */
$getlength = strlen($thetitle);
$thelength = 25;
echo substr($thetitle, 0, $thelength);
if ($getlength > $thelength) echo "...";
?>
</a>

Este código establece la longitud del título de la entrada en 25 caracteres. Si la longitud del título es superior a 25 caracteres, entonces cortará el título después de 25 caracteres y añadirá una elipsis ‘…’ al final.

Para cambiar la longitud de caracteres de su sitio web, simplemente cambie la variable $thelength al número de caracteres que prefiera.

Una vez añadido el código y guardado el archivo, deberá subirlo al directorio de temas de su cuenta de alojamiento de WordPress.

Puede hacerlo utilizando un cliente FTP o la herramienta de gestión de archivos de su panel de control de alojamiento de WordPress. Si no has usado FTP antes, entonces comprueba nuestra guía sobre cómo usar FTP para subir archivos a WordPress.

Una vez añadido el código, los títulos de tus entradas se truncarán según el número de caracteres que hayas establecido.

Esperamos que este artículo te haya ayudado a aprender cómo truncar los títulos de las entradas de WordPress con PHP. También puedes consultar nuestra guía sobre cómo escribir una buena entrada de blog y nuestra selección de las mejores herramientas y plugins de marketing de contenidos para WordPress.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Disclosure: Our content is reader-supported. This means if you click on some of our links, then we may earn a commission. See how WPBeginner is funded, why it matters, and how you can support us. Here's our editorial process.

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

The Ultimate WordPress Toolkit

Get FREE access to our toolkit - a collection of WordPress related products and resources that every professional should have!

Reader Interactions

20 comentariosLeave a Reply

  1. dustinporchia

    This is golden!….Thanks wpbeginner!

  2. Marco

    Does anybody know how the link title of previous_post_link(); could be truncated?

    thanks

  3. Brow

    Thanks this worked perfectly! I didn’t want to end up using a plugin just to do this and was happy your code cut down the titles properly.

    Thanks again!

  4. Joey Figaro

    Hey there – thanks for writing this up! I happened to stumble upon another example of how to achieve this and it seemed a lot more simple, so I will share it with you and see what you think.

    functions.php:

    function new_excerpt_length($length) {
    return 100;
    }
    add_filter(‘excerpt_length’, ‘new_excerpt_length’);

    • Editorial Staff

      These are two entirely different concepts…. The one you recommend is for post excerpts whereas the one we are talking about is for Post Titles.

      Admin

  5. Lena

    Hi!
    This doesn’t work if you use other languages than english. My swedish titel looks awful because the code doesn’t translate å ä and ö comparing to the default code. Any suggestions of what I have to do? This is a good trick and i want to use it.

    Kindly Lillan

    • Editorial Staff

      Hmm… that does sound like a serious issue. Wondering if you can specify the language via PHP, so it counts characters in that instead of english.

      Admin

      • Alex

        You might wanna try to specify a different charset, check Latin1 or utf8 i think they contain those chars as well.. I had some similar issues recently since my first language is german :)

  6. Navjot Singh

    One Suggestion, this type of code should be included in functions.php and not index.php. You can use conditional tags to restrict the code to any page you want whether its the homepage or any other page where you want.

    • Editorial Staff

      This is just for specific areas… But yes, it can be customized and placed in functions.php

      Admin

  7. Thomas Scholz

    Don’t use strlen(). Use mb_strlen() or strlen(utf8_decode($str)) or you risk to truncate the string inside of a multi-byte character. The same applies to mb_substr().

    Oh, and an ellipsis is one character: … :)

    • snipsley

      Thanks!! mb_strlen() a mb_substr solved my encoding problem. I’ve been looking for this for hours!

    • Lena Backstedt

      BIG tnx!
       
      mb_strlen() also seems to work for the swedish language (so far I can see)

Leave A Reply

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published. Please Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.