从第5个帖子开始,每10个帖子显示一次图片

时间:2018-08-21 15:52:35

标签: php wordpress while-loop

我在WordPress中有一个while循环,想在每10个帖子后添加一个图像。只有我想在第5次发布后开始。

我尝试过类似的操作,但无法对其进行调整,因此它按照我上面的描述进行操作。

<?php while ( have_posts() ): the_post();
if($i % 5 == 0) 
    echo '<img src="/image.gif">';
    ++$i; 
?>

我如何设法使它在第5个帖子之后开始,并且在第10个帖子之后开始?

3 个答案:

答案 0 :(得分:3)

从6开始计数

<?php 
    $i = 6;  // start i at 6

    while ( have_posts() ): the_post();
        if($i % 10 == 0) 
            echo '<img src="/image.gif">';
        ++$i; 
    }
?>

一个模拟的例子

<?php 
    $i = 6;  // start i at 6

    while ( $i < 31 ) {
        if($i % 10 == 0) { 
            echo "info $i" . PHP_EOL;
            echo '<img src="/image.gif">' . PHP_EOL;
        } else {
            echo "info $i" . PHP_EOL;
        }
        ++$i; 
    }
?>

结果

info 6
info 7
info 8
info 9
info 10
<img src="/image.gif">
info 11
info 12
info 13
info 14
info 15
info 16
info 17
info 18
info 19
info 20
<img src="/image.gif">
info 21
info 22
info 23
info 24
info 25
info 26
info 27
info 28
info 29
info 30
<img src="/image.gif">

答案 1 :(得分:2)

假设$i最初为0,则第五条帖子的$i为4。因此,我们跳过4(第五条帖子),然后每得到10个(结尾为4):

while ( have_posts() ): the_post();
    if(4 < $i) 
        if(4 == substr($i, -1)) 
            echo '<img data-count="'.$i.'" src="/image.gif">'."\n";                
    $i++;    

结果:

<img data-count="14" src="/image.gif">
<img data-count="24" src="/image.gif">
<img data-count="34" src="/image.gif">

这是我用来测试的代码:

$arr = array_fill(0, 40, 'pic');

for($i = 0; $i < count($arr); $i++)
    if(4 < $i) 
        if(4 == substr($i, -1)) 
            echo '<img data-count="'.$i.'" src="/image.gif">'."\n";

答案 2 :(得分:0)

尝试一下:

<?php while ( have_posts() ): the_post();
$i++;
if($i % 10 == 0 and $i > 5) 
    echo '<img src="/image.gif">';
?>

它将检查帖子编号是否被10除以零,并且帖子编号是否大于5。

我也将迭代器移到了if语句之前,因为否则,发布号将从0开始,并在发布号6而不是5上输出第一张图片。