Limitar la Cantidad de Palabras en el Excerpt y el Contenido

He modificado el post debido a que la función content() no funciona correctamente en nuevas versiones de wordpress.He probado la función excerpt() con la última versión de wordpress hasta el momento 3.7.1 y funciona correctamente.

Este código limita el numero de palabras en el Excerpt de wordpress. Solo debes copiar y pegar en el archivo functions.php del tema.

Functions.php

Debes poner el código debajo en el archivo functions.php del tema.

//limitar cantidad de palabras en el excerpt
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 usar la función si quieres limitar la cantidad de palabras en el excerpt úsalo así:

Index.php

O donde quieras mostrar los posts especificando un límite de palabras en el extracto del post.

<?php echo excerpt(25); ?>

Esta función es una buena técnica para usarse con las meta descripciones ya que puede manipular la cantidad de palabras que deseas mostrar.

Más información acerca de como funciona el loop de wordpress y los extractos.

Recomendado
  • Albert

    Hola Anthuan Vásquez,

    Me gustaria saber que haces despues de insertar ese código en el archivo functions.php, porque al insertarlo no pasa nada. Si luego colocas el código que dices mas abajo en el mismo archivo no se carga la página.

    Saludos y gracias!!!

    • Luego de colocar el código en el archivo functions.php de tu tema de wordpress, la funcion se llama excerpt(55); y donde tienes que implementarlar es donde quieres mostrar los posts con el excerpt (extracto) de las palabras limitadas.

      E.j. si pones el codigo de arriba en el archivo functions.php, luego solo tienes que llamar la funcion donde quieras usarlo dentro del loop de wordpress. Un caso seria en el arhivo index.php donde llamas los posts en ves de usar la funcion the_content() de wordpress usas excerpt(55); limitando el excerpt a 55 palabras.

      Edite el post para una mejor comprensión, gracias.

  • ricardo

    No me sirvio para nada por el contrario se me desconfiguro toda la pagina y tuve que volver a instalar el tema.

    • Ok, lo estuve testeando al parecer hay algunos bugs con la nueva version de wordpress, pero usalo de esta forma:

      
      function new_excerpt_more($more) {
             global $post;
      	return '...';
      }
      add_filter('excerpt_more', 'new_excerpt_more');
      
      function custom_excerpt_length( $length ) {
      	return 25;
      }
      add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
      
      

      Solo pasalo al archivo functions.php del theme y custom_excerpt_length cambia el return a la cantidad de palabras que quieras filtrar.

  • GeorgeDoe

    Me da error al escribir lo que dice en “En Index.php”

  • GeorgeDoe

    Encontre una forma más corta, espero que no sea problema postear links por acá (http://www.bufa.es/wordpress-excerpt-longitud/)

    • Si solo quieres limitar la cantidad de palabras en el excerpt, usa el código de arriba, el cual le comenté a ricardo. Ya ese código no funciona con versiones de wordpress superiores como la 3.6.

    • GeorgeDoe

      ok, gracias.