Inserire un'immagine o script pubblicitario dopo 3 post utilizzando il loop

7 ago 2012, 21:10:15
Visualizzazioni: 15.6K
Voti: 4

Ci sono molti script/hack per inserire annunci nel mezzo di un post (dopo 'x' numero di paragrafi), ma non ho trovato uno script abbastanza buono per fare quanto sopra.

Questo è lo script che si avvicina di più:

<?php $post_counter=0; ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php require('post.php'); ?>
<?php
$post_counter++;
if ($post_counter == 2 || $post_counter == 3) { ?>
INSERISCI QUI IL CODICE ADSENSE
<?php } ?>
<?php endwhile; ?>

Preso da qui. Ma il mio index.php utilizza invece questo:

<?php
$page_num = $paged;
if ($pagenum='') $pagenum =1;
query_posts('cat=-3&showposts=6&paged='.$page_num); ?>
            <?php if (have_posts()) : ?>
        <?php while (have_posts()) : the_post(); ?>
            <?php get_template_part('includes/index-loop'); ?>
            <?php endwhile; wp_reset_postdata(); wp_reset_query(); ?>
            <div class="clear"></div>

        <?php else : ?>
        <?php endif; ?>

Ho provato a inserire:

<?php
$post_counter++;
if ($post_counter == 2 || $post_counter == 3) { ?>
INSERISCI QUI IL CODICE ADSENSE
<?php } ?>

prima di endwhile, ma vedo una ripetizione di 'INSERISCI QUI IL CODICE ADSENSE' due volte. Qualche suggerimento?

1
Commenti

"Vedo una ripetizione di 'INSERT ADSENSE CODE HERE' due volte" - forse a causa dell'OR nell'istruzione condizionale if ($post_counter == 2 || $post_counter == 3) ? o intendi qualcos'altro?

Michael Michael
7 ago 2012 21:37:17
Tutte le risposte alla domanda 2
5
17

invece di un contatore di articoli, potresti usare la variabile $wp_query->current_post - che inizia con 0 per il primo articolo nel loop;

per un output dopo il terzo articolo, usa ad esempio questo prima della riga con endwhile;:

<?php if( $wp_query->current_post == 2 ) { ?>
FAI QUALCOSA
<?php } ?>
7 ago 2012 21:41:48
Commenti

Devo inserirlo nel template del singolo post/pagina? Se sì, dove esattamente?

Vivek Sancheti Vivek Sancheti
20 feb 2017 10:55:09

Il codice dovrebbe essere inserito nel loop del template index. I dettagli dipendono dal tema che stai utilizzando.

Michael Michael
20 feb 2017 19:55:06

Possiamo farlo in modo casuale all'interno del loop?

Muhammad Riyaz Muhammad Riyaz
12 lug 2017 13:14:12

@MuhammadRiyaz - generalmente sì, tuttavia il codice sarebbe più complesso perché devi ottenere il valore casuale prima del ciclo e poi usarlo al posto del numero nell'istruzione if. considera di aprire una tua domanda per ottenere una risposta dettagliata.

Michael Michael
12 lug 2017 19:11:42

@Michael - Grazie per la risposta. Ho trovato una soluzione. <?php $ad_positions = array(2,3,4,5,6); // array di posizioni possibili predefinite per gli annunci $numb = $ad_positions[rand(0, count($ad_positions) - 1)];

if( $wp_query->current_post == $numb ) { ?> FAI QUALCOSA <?php } ?>

Muhammad Riyaz Muhammad Riyaz
16 lug 2017 09:55:09
0
<?php $ad_positions = array(2,3,4,5,6); // array di posizioni predefinite possibili per gli annunci 
$numb = $ad_positions[rand(0, count($ad_positions) - 1)]; 

if( $wp_query->current_post == $numb ) { ?> 
FARE QUALCOSA 
<?php } ?>

Se qualcuno ha bisogno di mostrare un annuncio in posizioni casuali, il codice sopra sarà utile nel loop di WordPress. Grazie.

16 lug 2017 10:02:12