Vista de lectura de los POST.

Inicio Foros WordPress Themes y Diseño Vista de lectura de los POST.

Este debate contiene 18 respuestas, tiene 3 mensajes y lo actualizó  almendron hace 6 años, 9 meses.

  • Autor
    Publicaciones
  • #23154

    Talankero
    Participante

    <p>Hola a toda la comunidad. Gracias por existir he aprendido gracias a ustedes poner mi plantilla education, a tope de mis necesidades.</p>
    <p>Pero ahora me surge una duda, que no he podido responderme:</p>
    <p>En WordPress las entradas o post estan de arriba abajo, y me gustaría poder ponerlos en cuadrícula, es decir:<br />
    cuadricula.png</p>
    <p>Alguien me puede ayudar, hay algún plugin?</p>
    <p>Muchas Gracias.<br />
    Talankero
    </p>

  • #57149

    almendron
    Participante

    Te contesto de forma rápida y sin haber probado lo que voy a proponer:

    [b]En tu hoja de estilos añades lo siguiente:[/b]

    .embed {
    width:48%;
    float:left;
    padding:0 0 0 10px;
    margin:0 0 20px 0;
    }

    La idea la he tomado de

    Cómo utilizar columnas en posts en WordPress sin plugins

    Ahora hay que modificar el index porque en el enlace que he puesto viene la explicación para hacerlo en un post y no en la página principal.

    [b]Archivo index.php (antes de nada haz una copia de seguridad del archivo)[/b]

    Lo primero es poner un contador. Justo ENCIMA de <?php if (have_posts()) : ?> añades:

    <?php
    $numpost = 0
    ?>

    [b]Importante:[/b] en las opciones de wordpress debes poner que muestre un número par de posts. Haré el ejemplo suponiendo que has puesto 10 (5 posts en cada columna).

    Justo DEBAJO de <?php if (have_posts()) : ?> añades la línea <div class="embed">

    Con ello comenzamos la primera columna.

    Justo ENCIMA de <?php endwhile; ?> añades
    <?php
    $numpost = $numpost + 1;
    if ($numpost == 5) {
    echo '</div>' . '<div class="embed">';
    }
    ?>

    Con esto conseguimos que al final del 5º post cierre la div que hemos abierto al principio y abra la div para la segunda columna.

    Y justo DEBAJO de <?php endwhile; ?> añades

    </div>

    Con esto cerramos la segunda columna o la primera si hay menos de 5 posts.

    En teoría debería funcionar.

  • #57151

    Talankero
    Participante

    Lo pruebo y te digo.
    Muchas Gracias compañero.

    Un Saludo.

  • #57152

    Talankero
    Participante

    Hola Compañero, lo he probado, en el index.php del THEME, poniendo que quiero mostrar 4 post, en una columna 2, y en otra 2, lo he puesto así, pero no aparece nada:
    http://www.fepadmedia.es/observatorio

    <?php get_header(); ?>

    <div id=”content”>

    <div id=”contentleft”>

    <div class=”postarea”>

    <?php include(TEMPLATEPATH.”/breadcrumb.php”);?>

    [b]<?php
    $numpost = 0
    ?>[/b]
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

    [b]<div class=”embed”>[/b]

    <h1><?php the_title(); ?></h1>

    <div class=”date”>

    <div class=”dateleft”>
    <p><span class=”time”><?php the_time(‘F j, Y’); ?></span> <?php _e(“by”, ‘studiopress’); ?> <?php the_author_posts_link(); ?>  <?php edit_post_link(__(‘(Edit)’, ‘studiopress’), ”, ”); ?> <?php _e(“Filed under”, ‘studiopress’); ?> <?php the_category(‘, ‘) ?></p>
    </div>

    <div class=”dateright”>
    <p><span class=”icomment”>#respond”><?php comments_number(__(‘Leave a Comment’, ‘studiopress’), __(‘1 Comment’, ‘studiopress’), __(‘% Comments’, ‘studiopress’)); ?></span></p>
    </div>

    </div>

    <div class=”clear”></div>

    <?php the_content(__(‘Read more’, ‘studiopress’));?>

    <div class=”clear”></div>

    <div class=”postmeta”>
    <p><span class=”tags”><?php _e(“Tags:”); ?> <?php the_tags(”) ?></span></p>
    </div>

    <!–
    <?php trackback_rdf(); ?>
    –>

    [b] <?php
    $numpost = $numpost + 1;
    if ($numpost == 2) {
    echo ‘</div>’ . ‘<div class=”embed”>’;
    }
    ?>[/b]

    <?php endwhile; else: ?>

    [b]</div>[/b]

    <p><?php _e(‘Sorry, no posts matched your criteria.’, ‘studiopress’); ?></p><?php endif; ?>

    </div>

    <div class=”comments”>
    <?php comments_template(”,true); ?>
    </div>

    </div>

    <?php include(TEMPLATEPATH.”/sidebar.php”);?>

    </div>

    <?php // The main column ends ?>

    <?php get_footer(); ?>

    Muchas Gracias de nuevo, y un saludo.
    Talankero

  • #57153

    almendron
    Participante

    Pero, ¿es el index.php o el single.php el que has puesto?

  • #57154

    almendron
    Participante

    No se por qué pero la clase embed aparece en el single. Además, lo has puesto mal ya que has metido el punto DELANTE DEL NOMBRE DE la clase y es sin él.

    MAL: ‘<div class=”.embed”>’

    BIEN: ‘<div class=”embed”>’

  • #57156

    Talankero
    Participante

    Lo he cambiado y está en el index.php… Pero compañero sigue sin funcionar…

    No tengo nada de single…

    Un Saludo

  • #57157

    almendron
    Participante

    No, no. Espera que lo mire. No toques nada.

    ¿Está el código puesto ahora? ¿has guardado los cambios?

    Dime donde puedo descargar el tema que estás usando.

  • #57158

    Talankero
    Participante

    Si, he guardado los cambios ahora mismo.

    El theme como le estoy usando yo esactamente te le he subido a mi web:
    http://www.talankero.es/education.zip

    Saludos.

  • #57159

    almendron
    Participante

    Ahora mismo lo miro. Y sigue saliendo lo del punto. Compruebalo por favor.

  • #57160

    Talankero
    Participante

    Lo he vuelto a comprobar y no está con los puntos, está sin ellos en el index.php y con el punto en el style.css

    Un saludo

  • #57161

    almendron
    Participante

    Ya lo tengo.

    1.- Utiliza la copia de seguridad y deja el index.php original, es decir, el que tenías antes de hacer los cambios.

    2.- Copia index.php y lo guardas como single.php. Si no haces eso, cualquier cambio en el index o en el home se reflejan en las entradas individuales. Es decir, que deberás tener un archivo index.php y otro que será igual pero llamado single.php.

    3.- Hoja de estilos. El estilo embed debe quedar así:

    .embed {
    width:48%;
    float:left;
    margin:0 0 20px 0;
    }

    4.- Edita el archivo [b]home.php[/b]

    Justo ENCIMA de

    <?php $recent = new WP_Query("cat=".get_theme_mod('featured_top_left')."&showposts=".get_theme_mod('featured_top_left_num')); while($recent->have_posts()) : $recent->the_post();?>

    pones

    <?php
    $numpost = 0;
    ?>
    <div id="embed">

    Justo ENCIMA de <?php endwhile; ?> pones

    <?php
    $numpost = $numpost + 1;
    if ($numpost == 2) {
    echo '</div>' . '<div class="embed">';
    }
    ?>

    Y por último, justo DEBAJO de <?php endwhile; ?> pones

    </div>
    <div class="clear"></div>

    LO he comprobado. He instalado el tema en local y funciona.

  • #57168

    almendron
    Participante

    Haz primero las pruebas con

    .embed {
    width:45%;
    float:left;
    }

    Después añade margin-right o paddind-right y vas probando valores. El espacio es pequeño y puede descuadrarse dependiendo de los valores que les des.

  • #57172

    LGrusin
    Miembro

    almendron ese código creo que es para dividir un post en dos columnas pero no para mostrar todos los posts en dos columnas. No sé si me explico…

    Talankero igual te ayuda el siguiente hilo [url=https://ayudawp.com/foro/topic/posts-pares-e-impares-get-oddeven-posts]posts pares e impares[/url]

    Un saludo

  • #57173

    almendron
    Participante

    LO he adaptado y funciona perfectamente. Comprobado en local con el tema que usa Talankero y va a las mil maravillas.

    Solo que el tema era un poco especial. No tiene single y cualquier modificación del home o del index afecta a las entradas individuales. De ahí que le haya dicho que copiara index.php y lo guardara como single.php

    Aquí lo he puesto introduciendo la variable “Número de post por página” y funciona:

    https://ayudawp.com/foro/topic/mostrar-posts-en-dos-columnas

  • #57188

    almendron
    Participante

    Si no quieres hacer lo del single, entonces el código quedaría así:

    <?php
    if ( is_home() ) {
    $numpost = 0;
    echo '<div class="embed">';
    }
    ?>

    La segunda parte

    <?php
    if ( is_home() ) {
    $numpost = $numpost + 1;
    if ($numpost == 2) {
    echo '</div>' . '<div class="embed">';
    }
    }
    ?>

    Y la tercera

    <?php
    if ( is_home() ) {
    echo '</div><div class="clear"></div>';
    }
    ?>

    De todas formas, en cuanto tengo un momento lo compruebo en local y te digo si funciona biene ste cambio.

  • #57192

    almendron
    Participante

    Comprobado en local y funciona ya que no afecta a las entradas individuales. Si llegaste a crear el single.php, lo puedes borrar sin problema.

  • #57232

    Talankero
    Participante

    Hola Almendrón, perdona la tardanza en responder he estado fuera de casa todo el día.

    Tego que decirte que muchas gracias, me has ayudado muchisimo y me ha servido correctamente, ya aparece tal y como quería, de verdad, gracias.

    Saludos cordiales y de corazón muchas gracias.
    Talankero

  • #57234

    almendron
    Participante

    De nada. Tú has solucionado el problema que tenías y yo he aprendido algo nuevo.

    Por favor, [b]marca el hilo como resuelto[/b].

El foro ‘Themes y Diseño’ está cerrado y no se permiten nuevos debates ni respuestas.

Pin It on Pinterest