Suporte » Temas » Adicionar uma class a cada dois post dinamicamente.

  • 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!

    • Este t├│pico foi modificado 3 anos, 7 meses atr├ís por Wanderson Alves.
    • Este t├│pico foi modificado 3 anos, 7 meses atr├ís por Wanderson Alves.
    • Este t├│pico foi modificado 3 anos, 7 meses atr├ís por Wanderson Alves.
    • Este t├│pico foi modificado 3 anos, 7 meses atr├ís por Wanderson Alves.
Visualizando 7 respostas - 1 at├ę 7 (de um total de 7)
  • <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>

    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>

    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 3 anos, 7 meses atr├ís por Wanderson Alves.

    C├│digo gerado
    print

    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; ?>

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

    ­čÖé

    • Esta resposta foi modificada 3 anos, 7 meses atr├ís por Wanderson Alves.

    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>";} ?>

    • Esta resposta foi modificada 3 anos, 7 meses atr├ís por Wanderson Alves.
    • Esta resposta foi modificada 3 anos, 7 meses atr├ís por Wanderson Alves.
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.