Wordpress中第3,第5和第7个帖子后的自定义代码

时间:2012-08-10 12:52:50

标签: php wordpress-theming wordpress

您好,我有一点问题。我们新网站的首页有一系列缩略图框,翻转可打开某些展示产品。我写的循环显示当前的所有帖子,但最终将仅限于投资组合类别。

我的经理要求在第三篇文章后添加最近博客文章的滑块,以及在第5和第7篇文章之后添加几个带引用等的滑块。我找到了一些代码,每隔n个帖子注入相同的代码段,但这对我没有好处,因为我只希望它发生3次并且所有内容都不同,包括一个循环内的循环(大概时间会慢慢地移动mega)。这可能吗?如果是这样,有人可以指向我的代码片段吗?

当前循环

        <!-- Start of loop -->
    <?php if (have_posts()) : ?>

        <!-- Start of Post -->
        <?php while (have_posts()) : the_post(); ?>

        <!-- Check to see if there is featured image -->
        <?php if (function_exists('has_post_thumbnail') && has_post_thumbnail()) { ?>
        <?php $img_src = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), array( 960,960 )); ?>
        <!-- End Checking -->


        <div class="portfolioblock" style="background-image: url('<?php echo $img_src[0]; ?>');">
    <a href="<?php the_permalink(); ?>">
            <div class="rollover">
              <div class="center">
                <img src="<?php bloginfo('template_url'); ?>/img/zoom.png" alt="More" />
              </div>                    
              <h2><?php the_title(); ?></h2>               
                <p><?php the_excerpt(); ?></p>
    </div>
        </a>
        </div>


          <!-- Start Content Block -->          
        <?php } else { ?>
        <div class="block">
          <h2><?php the_title(); ?></h2>               
          <p><?php the_excerpt(); ?></p>
        </div>            
        <?php } ?>
        <!-- End Content Block -->

        <?php endwhile; ?>
        <!-- End of Post -->

        <?php else : ?>
        //Something that happens when a post isn’t found.

    <?php endif; ?>
    <!-- End of Loop -->

我找到了这个代码,用于每n个帖子注入一个代码段。

<?php $postnum++; if($postnum%5 == 0) { ?>
YOUR AD CODE HERE
<?php } ?>

3 个答案:

答案 0 :(得分:3)

您可以计算通过的帖子数量,然后决定:

$postnum++;
if ($postnum == 3 || $postnum == 5 || $postnum == 7) {
    echo 'foo';
}

答案 1 :(得分:1)

阐述cweiske的回答:

在结束前插入

    <?php $postnum++;
    if ($postnum == 4) { ?>

            <div class="block"><h2>Blog</h2></div>

    <?php } 
        if ($postnum == 6) { ?>

            <div class="block"><h2>References</h2></div>

    <?php }
        if ($postnum == 9) { ?>

            <div class="block"><h2>Meet the team</h2></div>

    <?php }; ?>

答案 2 :(得分:0)

基本上你想做的就是这个。

在循环开始之前,将计数器变量初始化为0。

每次循环成功找到一个帖子时,递增变量。

现在,每个循环,您将知道已显示的帖子数量。

因此,在适当的地方,检查计数器是否与3 5或7匹配。如果匹配,则显示正确的块。