Envolver cada 2 divs en fila - bucle foreach

21 jun 2016, 14:07:07
Vistas: 21K
Votos: -1

Por alguna razón, estoy teniendo problemas para envolver cada 2 divs en una fila en este bucle foreach....

¿Alguien podría arrojar algo de luz sobre esto?

                <?php 
                    $terms = get_terms("aircraft_category"); // obtener todas las categorías
                    $count = count($terms); //Contar cuántos términos tenemos

                    if ( $count > 0 ){  //Si hay más de 0 términos
                        foreach ( $terms as $term ) {  //para cada término:
                            echo "<div class='col-md-6 category'>";
                            echo "<h3>";
                            echo $term->name;
                            echo "</h3>";
                            echo $term->description;
                            echo "<div class='link'>";
                            echo "<a href=".get_term_link($term).">" . 'Ver Más' . "</a>";
                            echo "</div>";
                            echo " </div>\n";

                            //crear un elemento de lista con el slug del término actual para ordenar, y el nombre para la etiqueta
                        }
                    } 
                ?>

He intentado agregar contadores, pero no he tenido éxito...

Cualquier ayuda sería genial.

Gracias de antemano.

3
Comentarios

Esto es PHP plano, no específico de WordPress. Y ya lo hemos cubierto mil veces en nuestro sitio. Por favor, usa nuestro buen buscador antes de hacer una pregunta. :)

fuxia fuxia
21 jun 2016 14:33:04

Hola Toscho - No diría que esto está fuera de tema, pero supongo, como sugiere, lo que está dentro y fuera de tema no siempre es intuitivo... Me costó encontrar una 'Respuesta' correcta entre los miles que has mencionado, así que decidí hacer la pregunta.

Andy Simpson Andy Simpson
21 jun 2016 14:46:37

Tienes un array y quieres crear diferentes elementos dependiendo del índice de cada uno. Esto es solo PHP, no hay WordPress en el problema. De dónde viene el array no afecta al problema ni a su solución.

fuxia fuxia
21 jun 2016 14:49:37
Todas las respuestas a la pregunta 1
1

Necesitas crear una variable con el contador y luego verificarla, por ejemplo:

$num = 1;
foreach ( $terms as $term ) { 
 if($num%2) {
  echo '<div class="something">';
 }

 // otro código

 if($num %2) {
  echo '</div>';
 }
 $num++;
}

El %2 es la parte que necesitas, verifica si el número es divisible por 2

21 jun 2016 14:16:24
Comentarios

En algún lugar vas a tener una cantidad impar de términos, lo que significa que vas a tener un div sin cerrar, lo que romperá tu HTML

Pieter Goosen Pieter Goosen
21 jun 2016 14:45:07