• Resuelto homeroxis

    (@homeroxis)


    Hola a todos, tengo un loop normal donde quiero que se cargue una imagen diferente en orden (de 4) por cada post, o sea, el primer post que cargue la imagen n°1, el segundo post la imagen n°2 y así hasta la cuarta, después comienza a cargar de nuevo la misma secuencia.
    De momento me funciona de manera aleatoria, pero quiero que sea de manera ordenada. Este es mi código:

    <?php
    $query = new WP_Query(array(
    ‘post_type’ => ‘sabias_que’,
    ‘posts_per_page’ => 10,
    ‘order’ => DES
    ) );

    if (is_paged()) $count = 1; else $count = 0;

    if ( $query->have_posts() ) :
    while ( $query->have_posts() ) : $query->the_post();

    $count++;

    $imagenes[0]=’carousel-05.png’;
    $imagenes[1]=’carousel-05b.png’;
    $imagenes[2]=’carousel-05c.png’;
    $imagenes[3]=’carousel-05d.png’;

    $i=rand(0,3);

    echo ‘<div class=»item ‘;
    if ($count == 1) {
    echo ‘active’;
    }
    echo ‘»>’;
    echo ‘<img src=»‘;
    bloginfo(‘template_url’);
    echo ‘/images/’.$imagenes[$i].'» class=»transparent»>’;
    echo ‘<div class=»carousel-caption-2″>’;
    echo ‘<h3>‘.get_the_title().’</h3>’;
    the_content();
    echo ‘</div>’;
    echo ‘</div>’;

    endwhile;
    wp_reset_postdata();
    ?>
    <?php else : ?>
    <p><?php _e( ‘Contenido no encontrado.’ ); ?></p>
    <?php endif; ?>

    ¿alguien me puede ayudar por favor? Muchas gracias.

Viendo 8 respuestas - de la 1 a la 8 (de un total de 8)
  • Moderador almendron

    (@almendron)

    Usa el contador para establecer la imagen:
    Contador = 1 – imagen 1
    Contador = 2 – imagen 2
    Contador = 3 – imagen 3
    Contador = 4 – imagen 4
    Y justo ahora, después de poner la imagen 4, pones el contador de nuevo a cero.
    SI contador = 4 ENTONCES contador = 0

    Y también conviene que pongas posts_per_page a 12 (múltiplo de 4) porque al pasar de página perderás el valor del contador.

    • Esta respuesta fue modificada hace 7 años, 6 meses por almendron.
    • Esta respuesta fue modificada hace 7 años, 6 meses por almendron.
    Moderador almendron

    (@almendron)

    Y lo de rand quítalo también.

    Moderador almendron

    (@almendron)

    Nada. LO borro porque ha salido mal el código

    • Esta respuesta fue modificada hace 7 años, 6 meses por almendron.
    Moderador almendron

    (@almendron)

    Te lo explico un poco mejor:
    1) Crea 4 imágenes cuyo nombres sea carousel1, carousel2, carousel3 y carousel4

    2) Antes de while

    $count=0;
    $imagenes = '';
    

    3) Justo después de while:

    $count++;
    $imagenes='carousel' . $count . '.png';

    4) Quita lo de

    $imagenes[0]=’carousel-05.png’;
    $imagenes[1]=’carousel-05b.png’;
    $imagenes[2]=’carousel-05c.png’;
    $imagenes[3]=’carousel-05d.png’;
    
    $i=rand(0,3);

    5) Lo de echo active y ese if no se para que es pero no es necesario para lo que estamos hablando.

    6) Ahora pones la imagen:

    echo '<img src="' . bloginfo(‘template_url’) . '/images/' . $imagenes.'" class="transparent">';
    if ($count == 4) :
    	$count = 0;
    endif;
    • Esta respuesta fue modificada hace 7 años, 6 meses por almendron.
    Iniciador del debate homeroxis

    (@homeroxis)

    Voy a probar. Muchas gracias @almendron por tu tiempo y dedicación.
    Saludos
    Julián

    Moderador almendron

    (@almendron)

    Cuidado con las comillas simples que veo que alguna se ha puesto mal. Por ejemplo la de bloginfo(‘template_url’) que deberían ser bloginfo('template_url')
    Creo que el resto están bien pero revísalas. Y también las dobles comillas.

    • Esta respuesta fue modificada hace 7 años, 6 meses por almendron.
    Iniciador del debate homeroxis

    (@homeroxis)

    Funciona PERFECTO!! muchas gracias estimado @almendron.

    Moderador almendron

    (@almendron)

    De nada. Un saludo.

Viendo 8 respuestas - de la 1 a la 8 (de un total de 8)
  • El debate ‘Imagen DIFERENTE en cada POST’ está cerrado a nuevas respuestas.