Función para limitar caracteres en los post de WordPress

1 may 2010 7 comentarios

Función muy completa para cuando queremos personalizar un poco el listado de post del archive.php o index.php de nuestro wordpress, y que debemos incluir en nuestro functions.php. Con ella podemos personalizar el número de caracteres por post, así como el texto del link (‘Leer mas…, Read more, Seguir, etc…’)

function wp_limit_post($max_char, $more_link_text = '[...]',$notagp = false, $stripteaser = 0, $more_file = '') {
    $content = get_the_content($more_link_text, $stripteaser, $more_file);
    $content = apply_filters('the_content', $content);
    $content = str_replace(']]>', ']]>', $content);
    $content = strip_tags($content);

   if (strlen($_GET['p']) > 0) {
      if($notagp) {
      echo substr($content,0,$max_char);
      }
      else {
      echo '<p>';
      echo substr($content,0,$max_char);
      echo "</p>";
      }
   }
   else if ((strlen($content)>$max_char) && ($espacio = strpos($content, " ", $max_char ))) {
        $content = substr($content, 0, $espacio);
        $content = $content;
        if($notagp) {
        echo substr($content,0,$max_char);
        echo $more_link_text;
        }
        else {
        echo '<p>';
        echo substr($content,0,$max_char);
        echo $more_link_text;
        echo "</p>";
        }
   }
   else {
      if($notagp) {
      echo substr($content,0,$max_char);
      }
      else {
      echo '<p>';
      echo substr($content,0,$max_char);
      echo "</p>";
      }
   }
}
// Modo de uso:
wp_limit_post(180,'...',true);

7 Comentarios

Patricio, el 07/02/2011 a las 20:03:14

Un saludo. tengo una inquietud si deseo agregarle un hipervínculo al “Leer Mas” de acuerdo al post, como seria?
Gracias.

Angel, el 09/03/2011 a las 22:18:32

Despues de 2 meses no creo que vuelvas a ver esto pero bueno yo te contesto:

viendo la definición de la función el nombre del hipervínculo Leer más ese es el segundo parametro… sino pones nada te pondra [...]

Si pones:
wp_limit_post(180,’[Leer mas]‘,true);

Pos te saldra eso… la duda es el acento… nose se se podría pasar tal cual o tendrás que poner á o algun codigo raro, pero bueno todo es probar xD

Angel, el 09/03/2011 a las 22:32:18

Bueno fallo mio que no vi que no es un enlace sino simplmente un texto. Si quieres poner un enlace:
cambia donde pone:

echo $more_link_text;

por

echo '<a>ID}\" class=\"more-link\"&gt;$more_link_text</a>";

Angel, el 09/03/2011 a las 22:33:45

No me di cuenta del html activado…. bueno se lo dejo al webmaster para que lo arregle por si a alguien le enteresa.

un placer

Yanko Blumen, el 22/08/2011 a las 06:56:49

Hey gracias por el aporte, me fue muy útil. Saludos :D

Salvador, el 22/11/2011 a las 18:36:11

Muchas gracias, me vino genial la función!!

Francisco, el 29/11/2011 a las 10:34:35

Por si alguien lo ve. ¿Donde hay que incluir el // Modo de uso:
wp_limit_post(180,’…’,true);?. Gracias.

Escribe un comentario

Comenta este post en Facebook