web-dev-qa-db-fra.com

Insérer une image ou un script publicitaire après 3 publications en utilisant la boucle

Il existe de nombreux scripts/hacks permettant d'insérer des annonces au milieu de la publication (après le nombre de paragraphes 'x'), mais je n'ai pas trouvé de script suffisant qui permette les opérations ci-dessus.

Ceci est le script qui vient près,

<?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) { ?>
INSERT ADSENSE CODE HERE
<?php } ?>
<?php endwhile; ?>

Tiré de ici . Mais mon index.php utilise ceci à la place:

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

J'ai essayé de mettre dans le

<?php
$post_counter++;
if ($post_counter == 2 || $post_counter == 3) { ?>
INSERT ADSENSE CODE HERE
<?php } ?>

avant la fin, mais je vois une répétition de "INSERT ADSENSE CODE HERE" deux fois. Aucune suggestion?

3
Sledge81

au lieu d'un compteur de publications, vous pouvez utiliser la variable $wp_query->current_post - qui commence par 0 pour la première publication de la boucle;

pour certaines sorties après la troisième publication, utilisez par exemple ceci avant la ligne avec endwhile;:

<?php if( $wp_query->current_post == 2 ) { ?>
DO SOMETHING
<?php } ?>
13
Michael
<?php $ad_positions = array(2,3,4,5,6); // array of preset possible ad positions 
$numb = $ad_positions[Rand(0, count($ad_positions) - 1)]; 

if( $wp_query->current_post == $numb ) { ?> 
DO SOMETHING 
<?php } ?>

Si quelqu'un a besoin d'afficher l'annonce dans positions aléatoires , le code ci-dessus aidera dans la boucle wordpress. Je vous remercie.

2
Muhammad Riyaz