Inserimento <div> ogni 2 articoli in un loop Wordpress

PazzoFrontEnd

Utente Attivo
8 Ott 2013
46
0
6
Buongiorno a tutti
da poco mi sono affacciato a wordpress e php e vorrei una spiegazione su come fare una cosa: ho bisogno di inserire un <div class="clear"></div> per impaginare al meglio i miei articoli all'interno del loop wordpress. La sintassi di quello che voglio realizzare è la seguente:

HTML:
<article></article>
<article></article>
<div class="clear"></div>
<article></article>
<article></article>
<div class="clear"></div>
<article></article>
<article></article>
<div class="clear"></div>
<article></article>
<article></article>
<div class="clear"></div>

ecc...per quanti sono gli articoli impaginati ma sempre ogni due. Come posso fare ad inserire tale logica all'interno di un loop (mi viene in mente un foreach ma non capisco come inserirlo) ?

PHP:
        <?php 
            if ( have_posts() ) {

                while (have_posts()) : the_post(); ?>

                  <?php //qui l'html da mostrare ?>
                    
            <?php    endwhile;

            } else {
                //no content
            }

        ?>

Grazie anticipatamente e buona giornata
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, puoi inizializzare un contatore prima del ciclo , lo incrementi all'interno, verifichi se divizibile per 2 e nel caso aggiungi il div
PHP:
if ($i % 2 == 0)
            echo "<div class='clear'></div>";
        $i++;
 
Ultima modifica:

PazzoFrontEnd

Utente Attivo
8 Ott 2013
46
0
6
Ciao Criric

Ho provato ma il div me lo inserisce prima e non dopo:

PHP:
        <?php 
            if ( have_posts() ) {


                while (have_posts()) : the_post(); 

                    if ($i % 2 == 0)
                        echo "<div class='clear'></div>";
                    $i++; 
                                           
                    get_template_part("content", "article" );


                endwhile;

            } else {
                //no content
            }

        ?>

Dentro "get_template_part("content", "article" );" inserisco il "the_content()". La situazione che si crea è la seguente:

Codice:
<div class="clear"></div>
<article></article>
<article></article>
<div class="clear"></div>
<article></article>
<article></article>
<div class="clear"></div>
<article></article>
<article></article>

Li vorrei prima. Se invece sposto il controllo dopo il ciclo ho una situazione del genere:

Codice:
<article></article>
<div class="clear"></div>
<article></article>
<article></article>
<div class="clear"></div>
<article></article>
<article></article>
<div class="clear"></div>
<article></article>

Come posso affinare la cosa?
Grazie
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Invertili
PHP:
get_template_part("content", "article" );
if ($i % 2 == 0)
        echo "<div class='clear'></div>";
  $i++;
ps:
non hai inizializzato la variabile prima del ciclo prova con $i = 0 o $i = 1
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Nel frattempo ho fatto questa prova
PHP:
<style>
    .article {
        width: 200px;
        height: 100px;
        border: 1px solid black;
        margin-right: 1px;
        float:left;
    }
    .clear {
        clear:both;
    }
</style>
<?php
$i = 0;
while ($i < 10) {
    echo "<div class='article'></div>";
    $i++;
    if ($i % 2 == 0)
        echo "<div class='clear'></div>";
}
sembra funzionare
 

PazzoFrontEnd

Utente Attivo
8 Ott 2013
46
0
6
Ho fatto così:

PHP:
            $custom_query = new WP_Query("category_name=homepage");

            $i = 0;
           
            if ( $custom_query->have_posts() ) {


                while ($custom_query->have_posts()) : $custom_query->the_post(); 
                                           
                    get_template_part("content", "article" );


                    if ($i % 2 == 0)
                        echo "<div class='clear'></div>";
                    $i++; 

                endwhile;

            } else {
                //no content
            }

Ma mi restituisce questo:

Codice:
<article></article>
<div class="clear"></div>
<article></article>
<article></article>
<div class="clear"></div>
<article></article

Non va...dove sbaglio? So già che sarà una fesseria abominevole....
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Incrementa prima di verificare
PHP:
 $i = 0;
    while ($custom_query->have_posts()) : $custom_query->the_post();

        get_template_part("content", "article");

        $i++;
        if ($i % 2 == 0)
            echo "<div class='clear'></div>";
    endwhile;
 
Discussioni simili
Autore Titolo Forum Risposte Data
D Inserimento video mp4 HTML e CSS 0
L inserimento form dati multipli ? PHP 0
G Appicazione HTML per inserimento dai in Database Access Microsoft HTML e CSS 0
J Form inserimento dati in database Ajax 1
D modificare questo codice per inserimento in text e non in tabella jQuery 1
R [C#] Automatizzare un inserimento di un Post su un Gruppo Facebook .NET Framework 0
M Aiuto con inserimento immagini WordPress 6
elpirata Impedire inserimento data di oggi e date passate jQuery 39
A Inserimento dati nel database tramite form + altre operazioni PHP 18
W Email conferma inserimento Classic ASP 0
S Inserimento multiplo non richiesto PHP 2
P inserimento icone social tramite html HTML e CSS 1
L form multipla php sql,errore in inserimento MySQL 0
Alex_70 Inserimento dati a cascata PHP 204
T Da xsd a xml ed inserimento dati in excel XML 0
M Problema inserimento parole con apostrofo nel db PHP 5
C [RISOLTO]Inserimento variabile php in input html PHP 20
P Access Inserimento data. MS Access 4
L Inserimento dettagli in una maglia Photoshop 2
S [PHP] email con inserimento dati nel database PHP 23
beatle [Photoshop] problema inserimento immagini Photoshop 1
G [Javascript] Errore inserimento dati Backend Node.js e workbench Javascript 1
B [PHP] Creare PDF dopo inserimento dati form PHP 4
C [PHP] Form con Inserimento dati dalla maschera e un menù a discesa che prende i dati dal db PHP 1
C [PHP] Form inserimento più menù a discesa PHP 9
M [PHP] Problemi su inserimento array nel db PHP 7
gandalf1959 [PHP] Inserimento di più righe non funziona come mi aspetto... PHP 2
E Inserimento dati da PHP in tabella MySQL PHP 5
E Form inserimento dati con JavaScript Javascript 0
D [MS Access] problemi con inserimento campo in una maschera MS Access 6
G inserimento csv in tabella mysql; problema con struttura PHP 11
M [Joomla] Inserimento wow.js in template Joomla 4
K [PHP] Inserimento dati database con postgres PHP 2
K [PHP + MYSQL ] Inserimento dati in database da form dinamico PHP 13
A [PHP] Inserimento url dinamici in pagina html PHP 3
spider81man [PHP] Alert Box per confermare Inserimento o Cancellazione dato. PHP 4
gandalf1959 [MySQL] Inserimento multiplo da form multirighe MySQL 22
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
M Inserimento dati checkbox multipli in db da ajax a php PHP 1
S [PHP] inserimento su DB da tabella PHP 29
P [PHP] Problema inserimento nuove chiavi in array PHP 2
paloppa Inserimento data su database MYSQL PHP 2
webimage [PHP] Non inserimento in tabella PHP 19
N [Java] codice per inserimento sql Java 0
T [HTML] inserimento nav HTML e CSS 8
G [HTML] Problemi con inserimento immagini HTML e CSS 7
C [HTML] Inserimento feed/rss di Mr.Webmaster sul proprio sito HTML e CSS 1
M Inserimento Array prelevato da Database in Php in un altra tabella mysql PHP 0
M [PHP] Controllo inserimento in tempo reale PHP 0
T [PHP] modulo inserimento in DB e apostrofi... PHP 1

Discussioni simili