General WordPress.org

Foro WordPress » WordPress » General WordPress.org

Limitar el tamaño del texto en post destacados (21 mensajes)

Acerca de este hilo

Tags

  1. guardafaro

    5.0
    Antiguedad: Oct 2009
    Mensajes: 109

    offline

    Publicado hace 2 años
    #

    "< ?php the_excerpt() ?>" no admite otros parámetros o atributos; no obstante, para limitar el tamañó de los textos a mostrar se puede usar un filtro, una función añadida al archivo functions.php, como se explica en el Codex de WP.

    Sin embargo, en el caso de los post completos a mostrar en la página principal, más allá de la limitación que se puede seleccionar con el "more" <?php the_content('Seguir leyendo »'); ?> no he podido encontrar otra forma para limitar el tamaño del texto que se puede presentar, sin depender de la colocción del <--more--> cuando se está escribiendo el post. El lugar por donde realizar ese corte o separación depende del criterio de cada autor, según cuanto texto quiera que aparezca en su home y del sentido del texto, que puede hacer conveniente partir en un sitio o en otro para hacerlo interesante de seguir.

    Pero me he encontrado con que, cuando se quiere poner un post destacado, con un formato distinto al resto de los otos posts, por motivos de diseño resulta muy conveniente mantener siempre un número específico de palabras o de caracteres (preferiblemente esto último, porque 100 caracteres siempre ocuparán el mismo espacio, pero treinta palabras no).

    ¿Alguien conoce de algún atributo que se pueda añadir al "< ?php the_content()>" para definir esa longitud del post o, en todo caso, algún filtro para el funtión.php que se encargue de eso? Algo que no precise del uso de los campos personalizados.

  2. 23r9i0

    5.0
    Antiguedad: Dic 2008
    Mensajes: 316

    offline

    Publicado hace 2 años
    #

    Hola
    Prueba con http://ayudawordpress.com/the-excerpt-reloaded/

    "Sólo sé, que no sé nada"
  3. Mno4K

    5.0
    Antiguedad: Dic 2008
    Mensajes: 244

    offline

    Publicado hace 2 años
    #

    Hola guardafaro! También podrías usar la función

    < ?php the_content_rss(); ? >

    Que te permite limitar el numero de palabras que mostrar

    Saludos!

    There's no place like 127.0.0.1
  4. guardafaro

    5.0
    Antiguedad: Oct 2009
    Mensajes: 109

    offline

    Publicado hace 2 años
    #

    23r9i0, gracias por el plugin. Lo dejo como tabla de salvación final, porque, mientras me sea posible, trato de prescindir del uso de ellos. Por cierto que con él resolvería el problema de la falta de imágenes en los extractos. Porque resulta que quiero mostrarlas y no encuentro la forma de hacerlo. Es una pregunta que tengo pendiente para poner en otro hilo. Los themes que he revisado, tipo revista, usan los campos personalizados para incluir los thumbnails dentro de los extractos; pero no me sirve cuando quieres cambiar el theme de un blog en donde ya tienes varios centenares de post publicados.

    Mno4K, esa función ya la había revisado; pero al convertirme el post en RSS me elimina la imagen, y no me interesa, pues se trata del post destacado, precisamente. Sin embargo, tengo por aquí una pieza de código que fue hecha para limitar la cantidad de letras en los título (en este ejemplo a 85 caracteres) y, asumo yo, que con un retoque podría reutilizarse para limitar el tamaño de los posts. No sé que opinarás tú; pero te pego el código.

    <?php if(strlen($post->post_title)>85)
    {
    $variabletitle = $post->post_title;
    $titulomostrado = substr($variabletitle,0,85);
    echo $titulomostrado."...";
    }else{
    the_title();
    }
    ?>

  5. Mno4K

    5.0
    Antiguedad: Dic 2008
    Mensajes: 244

    offline

    Publicado hace 2 años
    #

    Así debería limitar el contenido a doscientos caracteres sin eliminar imágenes:

    < ?php if(strlen(get_the_content()) >200)
    {
    $content = get_the_content();
    $content = substr($content,0,200);
    echo $content."...";
    }else{
    the_content();
    }
    ? >

    Probalo y decime si te funciona. Saludos!

    There's no place like 127.0.0.1
  6. guardafaro

    5.0
    Antiguedad: Oct 2009
    Mensajes: 109

    offline

    Publicado hace 2 años
    #

    Gracias, Mno4K, funciona muy bien, limitando caracteres en lugar de palabras y, en efecto, mostrando la imagen que tengas en el post. Porque, en realidad, no se trata de un excerpt, sino de un post al que estamos limitando.
    El único problema que detecté con su uso ha sido cuando el número de caracteres que definimos para mostrar supera al punto de corte por el <--more-->, si lo hay. Al llegar ahí, se pierde la configuración del post y se me mezcla con el siguiente. Lo otro es que no acepta que le pasen el "Seguir leyendo..." como medio de enlace, aunque es un inconveniente menor.

    Como yo lo quiero para usarlo con los post destacados, no tengo problemas, porque no se trata más que de un post normal con un formato de color distinto dentro de una caja con marco. El inconveniente se presentaría al intentar utilizar este método en sustitución de un <?php the_excerpt() ?> dentro de una caja reducida, pues si ese post tiene una imagen grande, ya te imaginarás. Para esos casos se necesitaría combinar ese código con algo que nos convierta la imagen en un thumbnail de manera automática. Voy a indagar un poco más con el uso del script TimThumb, que es para eso, supuestamente. http://timthumb.googlecode.com/svn/trunk/timthumb.php

  7. Mno4K

    5.0
    Antiguedad: Dic 2008
    Mensajes: 244

    offline

    Publicado hace 2 años
    #

    En cuanto a lo primero, la verdad no sé, lo probé varías veces y no pasa. Seguro que no es un problema de algun div perdido por ahí?

    En cuanto al seguir leyendo, se puede solucionar con una pequeña modificación:

    ?php if(strlen(get_the_content()) >200) :

                                $content = get_the_content('mor');
                                $content = substr($content,0,200);
                                echo $content."...";? >
                                < a href="< ?php the_permalink() ? >" >Leer Más< / a >
                            < ? else :
                                the_content();

                            ? >   < ?php endif; ? >

    también podrías hacerlo como una function y usarlo en el functions.php y pasarle como parámetros el limite y el texto de "more" para que quede más prolijito.

    Saludos!

    There's no place like 127.0.0.1
  8. guardafaro

    5.0
    Antiguedad: Oct 2009
    Mensajes: 109

    offline

    Publicado hace 2 años
    #

    De nuevo, gracias, Mno4K. ¿Cómo no se me ocurrió que podía añadir el permalink como un enlace? Aunque, que se me hubiera ocurrido no necesariamente quiere decir que lo hubiera logrado hacer. ¡Ahora funciona perfecto! Por otra parte no se me ha presentado el problema que mencioné al exceder el límte del <-- more --> Quizás porque, como tú dices, en aquel momento tenía algún problemilla que debo haber quitado cuando limpié código de prueba que iba dejando atrás encerrad entre comentarios, que no siempre opera cuando encierras código php. En fin, ahora ocurre algo mejor, y es que, aunque establezca una longitud de caracteres superior a los que hay antes del corte del <-- more -->, SOLO se muestra el texto que hay hasta ese punto, lo que me parece perfecto. En mi opinión, esta pieza de código resulta excelente para, en los themes así preparados, presentar post destacados, siempre con un tamaño igual.

    Con respecto a lo que mencionas de convertirlo en una función para agregar al archivo functions.php me parece mucho mejor. Yo opino que mientras menos cosas ponga en el index.php (o en el home.php) mejor.

    Por otra parte, me atrevería a asegurar que, si logro resolver el inconveniente que puede presentar el tamaño de la imagen principal, reduciéndola, este método podría resultar, en muchos casos quizás, más interesante que el uso del <i>the_excerpt()</i>.

    Por cierto, el escript TimThumb no me sirve para lo que mencioné en el último párrafo de mi comentario anterior, por varios motivos. El principal es que hace uso de los campos personalizados (custom fields) para insertar la imagen miniatura en los excerpts (o donde se quiera). La verdad que para hacer eso no necesito ese script, pues poco me cuesta, cuando redimensiono una imagen para el post principal, sacar un thumbnail a la vez. De hecho sé que hay programitas gratuitos de tratamiento y redimensionado de imágenes que hacen eso. Seguiré viendo que solución le doy.

    Saludos.

  9. Mno4K

    5.0
    Antiguedad: Dic 2008
    Mensajes: 244

    offline

    Publicado hace 2 años
    #

    De nada guardafaro!

    Para convertirlo en una function y que te quede más prolijo podés modificarlo así:

    function limitarContent ($leermas, $limite) {

            if(strlen(get_the_content()) >200) :
                    $content = get_the_content($leermas);
                    $content = substr($content,0,$limite);
                    $morelink = "<a href="the_permalink()"> $leermas</a>";
                    $content= $content." [...]".$morelink;
                    else :
                        $content = the_content();

            endif;

            return $content;
    }

    y pegarlo en el functions.php de tu theme. Después, en el index.php, lo llamas con

    < ?php echo limitarContent('Leer Mas', 200)? >

    donde 'Leer Mas' y 200 los podés cambiar por el texto que quieras y el limite de caracteres que te guste. Fijate que se le agrega siempre un [...], sino te gusta, podés sacarselo en

    $content= $content." [...]".$morelink;

    dejando solo
    $content= $content.$morelink;

    En cuanto a las thumbnails, podés usar timthumb sin custom fields, fijate en este enlace, que tienen una función hecha justamente para eso.

    Saludos!

    EDIT= no se por qué el resaltador de sintaxis me lo mata, pero donde dice:

    $morelink = "<a href="the_permalink()"> $leermas</a>";

    no es así, es

    \"the_permalink()\"

    con dos "\"

    There's no place like 127.0.0.1
  10. guardafaro

    5.0
    Antiguedad: Oct 2009
    Mensajes: 109

    offline

    Publicado hace 2 años
    #

    Lo siento; pero no logro resolver la linea 5, donde el $morelink =. Me da un error de sintaxis con todo lo que he probado.

    Gacias por el enlace de la ventan con puro css. Lo estoy analizando.

    Con respecto a la inserción de imágenes miniaturas dentro de los excerpts, he encontrado un par de sitios donde exponen muy bien la forma de mostrarlas sin plugins ni uso de campos personalizados, y bastante bien explicado. Uno de ellosse titula "Como mostrar miniaturas en tu tema de WordPress sin plugins ni hacks". El otro es "Como extraer miniaturas de imágenes en Wordpres". Aún no he probado; pero luce prometedor.

  11. Mno4K

    5.0
    Antiguedad: Dic 2008
    Mensajes: 244

    offline

    Publicado hace 2 años
    #

    Que raro, a mí así

    $morelink = "< a href =\"the_permalink()\" > $leermas< /a >";

    me funciona joya. Sin los espacios claro. Cualquier cosa, te lo subí aca copialo y pegalo en tu functions.php sin los <? y ?>.

    Saludos!

    There's no place like 127.0.0.1
  12. guardafaro

    5.0
    Antiguedad: Oct 2009
    Mensajes: 109

    offline

    Publicado hace 2 años
    #

    Listo. Funciona como una seda. Gracias.

  13. Mno4K

    5.0
    Antiguedad: Dic 2008
    Mensajes: 244

    offline

    Publicado hace 2 años
    #

    Joya, me alegro!

    There's no place like 127.0.0.1
  14. guardafaro

    5.0
    Antiguedad: Oct 2009
    Mensajes: 109

    offline

    Publicado hace 2 años
    #

    Vaya, Mno4k, un solo fallito en la seda. Para leer el post completo por el enlace del título no hay problema; pero, por el enlace del

    < ?php echo limitarContent('leer mas', 800) ? >


    produce un mensaje de error 404. Supongo entonces que debo seguir con algún problema en la parte del:
    $morelink = "<a href="the_permalink()"> $leermas</a>";

  15. 23r9i0

    5.0
    Antiguedad: Dic 2008
    Mensajes: 316

    offline

    Publicado hace 2 años
    #

    Mirate este codigo!!!

    < ?php
    function theme_trim_excerpt($text) { // Fakes an excerpt if needed
    if ( '' == $text ) {
    $text = get_the_content('');
    $text = strip_shortcodes( $text );
    $text = apply_filters('the_content', $text);
    $text = preg_replace('@.*?< /script >@si', '', $text); //remove javascript
    $text = preg_replace('@< ![\s\S]*?--[ \t\n\r]* >@', '', $text); // remove CDATA, html comments
    $text = str_replace(']] >', ']] >', $text);
    $text = strip_tags($text, '');
    $excerpt_length = 115;
    $words = explode(' ', $text, $excerpt_length + 1);
    }
        if (count($words) > $excerpt_length) {
            array_pop($words);
            $read_more = '< div class="right" ><a href="'.get_permalink().'">Read more...</a>< /div >';
            array_push($words, $read_more);
            $text = implode(' ', $words);
        }
    return $text;
    }

    remove_filter('get_the_excerpt', 'wp_trim_excerpt');
    add_filter('get_the_excerpt', 'theme_trim_excerpt');
    ? >


    y se llama desde
    < ?php the_excerpt(); ? >

    "Sólo sé, que no sé nada"
  16. 23r9i0

    5.0
    Antiguedad: Dic 2008
    Mensajes: 316

    offline

    Publicado hace 2 años
    #

    Hola puedes seguir los avances o errores desde este enlace:
    http://ayudawordpress.com/foro/topic/usar-codigo-de-un-theme-para-el-mio-como que es donde pregunte yo como usarlo.

    "Sólo sé, que no sé nada"
  17. guardafaro

    5.0
    Antiguedad: Oct 2009
    Mensajes: 109

    offline

    Publicado hace 2 años
    #

    Bueno, aún no lo pruebo, pero si usa el the_excerpt creo que no me servirá para donde lo pienso usar, porque los excerpts no incluyen imágenes por vía normal. Lo interesante del código anterior, de Mno4k, es que tan solo limita la longitud de un post normal, el cual, por supuesto, se presenta con imagen en caso de tenerla. El código que me dio primero, par aincluir en el index funcionaba bien. El problemilla lo he tenido con la "versión" a colocar como función en el functions.php.

    De todos modos probaré que hace el tuyo, que solo con leerlo no me queda claro. Puede servirme para otros sitios donde coloco extractos. En realidad ando buscando la forma de mostrar excerpts... pero incluyendo con la primera imagen del post, sin usar campos personalizados.

  18. 23r9i0

    5.0
    Antiguedad: Dic 2008
    Mensajes: 316

    offline

    Publicado hace 2 años
    #

    Hola
    Pues probando el codigo de Mno4K que en cierta manera es mejor he podido solucionar el $morelink

    $morelink = '... <a href="'.get_permalink().'">'.$leermas.'</a>';


    A mi en local si funciona!!

    "Sólo sé, que no sé nada"
  19. 23r9i0

    5.0
    Antiguedad: Dic 2008
    Mensajes: 316

    offline

    Publicado hace 2 años
    #

    Hola
    Mirar este codigo:
    mi codigo de limitar
    Para llamarlo se usa:

    < ?php echo cerrar_tags(limitarContent('leer mas', 150)) ;? >


    Admite imagenes y al permitir div tambien mantiene el formato del plugin que uso para mostrar codigos en los post de mi web.

    "Sólo sé, que no sé nada"
  20. guardafaro

    5.0
    Antiguedad: Oct 2009
    Mensajes: 109

    offline

    Publicado hace 2 años
    #

    Gracias, 23r9i0: el cambio al .get_permalink() ha resuelto el problema que se presentaba al querer leer todo el post a través del enlace "more". Ahora va bien. Y tanto para ti como para Mno4K que había tenido curiosidad de ver como me quedaba el diseño en el que trabajo esta parte, ya lo saqué de local y lo tengo colgado en una demo en esta url: http://demo.ciudadsinbarreras.es

    Probaré tu otra versión para limitar contenido en cuanto tenga oportunidad. Ahora tengo días con un problema en IE7 al que no encuentro el origen del desmadre, después que todo estaba bien. Tenía un par de semanas que no lo revisaba en IE y me encontré con la sorpresilla. NO sé que rayos habré hecho. Pondré la pregunta en otro hilo, a ver si alguien me da alguna luz.

    Gracias por tu ayuda.

Responder »

Debes Identificarte para publicar.

Foro WordPress » WordPress » General WordPress.org