• Resolvido Wanderson Alves

    (@wandersonalwes)


    Olá, estou precisando de uma ajudinha 🙂

    Estou querendo adicionar uma classe css a cada dois posts.

    Exemplo:

    `<div class=”teste”>
    <article>1</article>
    <article>2</article>
    </div>
    <div class=”teste”>
    <article>3</article>
    <article>4</article>
    </div>
    <div class=”teste”>
    <article>5</article>
    <article>6</article>
    </div>

    Desde já muito obrigado!

Visualizando 7 respostas - 1 até 7 (de um total de 7)
  • Criador do tópico Wanderson Alves

    (@wandersonalwes)

    <div class="teste">
    	<article>1</article>
    	<article>2</article>
    </div>
    <div class="teste">
    	<article>3</article>
    	<article>4</article>
    </div>
    <div class="teste">
    	<article>5</article>
    	<article>6</article>
    </div>
    Criador do tópico Wanderson Alves

    (@wandersonalwes)

    Já tenho um modelo estático, porém preciso de algo dinâmico

    <div class="col-md-12">
    <?php query_posts('showposts=2'); ?>
    <?php $posts = get_posts('numberposts=2&offset=0'); foreach ($posts as $post) : start_wp(); ?>
    <?php static $count1 = 0; if ($count1 == "2") { break; } else { ?>
    
    						<div class="col-md-6">
    							<?php get_template_part( 'template-parts/content', get_post_format() ); ?>
    						</div>
    
    <?php $count1++; } ?>
    <?php endforeach; ?>
    </div>
    
    <div class="col-md-12">
    <?php query_posts('showposts=2'); ?>
    <?php $posts = get_posts('numberposts=2&offset=3'); foreach ($posts as $post) : start_wp(); ?>
    <?php static $count2 = 0; if ($count2 == "2") { break; } else { ?>
    
    						<div class="col-md-6">
    							<?php get_template_part( 'template-parts/content', get_post_format() ); ?>
    						</div>
    
    <?php $count2++; } ?>
    <?php endforeach; ?>
    </div>
    Criador do tópico Wanderson Alves

    (@wandersonalwes)

    Problema resolvido 🙂

    Segue o código que criei!

    // conta de 0 a 1
    for ($i=0; $i < 2 ; $i++) {
    	// acrescenta uma div antes do post 0 
    	if ($i == 0) {
    		echo "<div class='col-md-12'>";
    	}
    	// mostra os posts 0 e 1
    	if ($i < 2) {
    		$template = get_template_part( 'template-parts/content', get_post_format() );
    		echo $template;
    	}
    	// fecha a div adicionada anteriormente
    	if ($i == 1) {
    		echo "</div>";
    	}
    }
    • Esta resposta foi modificada 7 anos, 10 meses atrás por Wanderson Alves.
    Criador do tópico Wanderson Alves

    (@wandersonalwes)

    Código gerado
    print

    Criador do tópico Wanderson Alves

    (@wandersonalwes)

    No exemplo anterior ficou com posts duplicados:

    Mas para minha felicidade conseguir resolver com um novo código, caso alguém precise fazer algo similar futuramente segue o código.

    <?php if ( have_posts() ) : $i = 0; ?>
    
    	<?php while( have_posts() ) : $i++;  the_post(); ?>
    
    		<?php if(($i % 2) !== 0){
    			echo "<div class='col-md-12'>";
    			get_template_part( 'template-parts/content', get_post_format());
    		}
    
    		elseif (($i % 2) == 0){
    			get_template_part( 'template-parts/content', get_post_format());
    			echo "</div>";
    		}
     	?>
    
     <?php endwhile; ?>
    <?php endif; ?>
    Criador do tópico Wanderson Alves

    (@wandersonalwes)

    Foi necessário adicionar isso logo após o endwhile
    <?php if ($i < 2) {echo "</div>";} ?>

    🙂

    Criador do tópico Wanderson Alves

    (@wandersonalwes)

    hehehe código anterior bugou com 3 e 5 posts ou melhor qualquer número ímpar, a solução que encontrei foi simples!
    <?php if ( ( $i % 2 ) !== 0) {echo "</div>";} ?>

Visualizando 7 respostas - 1 até 7 (de um total de 7)
  • O tópico ‘Adicionar uma class a cada dois post dinamicamente.’ está fechado para novas respostas.