0

我怎样才能做到这一点,

我有一个幻灯片,它一次显示 4 个帖子并移动一个完整的 4 个帖子块,我在这里面临的问题是我在滑块中有 9 个帖子,它在 end 中显示一个帖子4posts -> 4posts -> 1Post

如果帖子总数不是 4 的倍数,我需要做的是再次倒回查询,这样如果我在循环中有 9 个帖子,它将再次重用查询并用前三个帖子填充空白空间.

这是我的PHP代码:

<?php $slide_thumb_query = new WP_Query('category_name=slideshow&meta_key=_thumbnail_id'); ?>
<?php while ($slide_thumb_query->have_posts()) : $slide_thumb_query->the_post(); ?>
<li>
    <a href="<?php $image_id = get_post_thumbnail_id();
        $image_url = wp_get_attachment_image_src($image_id,'homeslider', true);
        echo $image_url[0];  ?>">
            <img src="<?php $image_id = get_post_thumbnail_id(); $image_url = wp_get_attachment_image_src($image_id,'homeslider-thumb', true); echo $image_url[0];  ?>" title="<?php the_title()?>"/>
    </a><a href="<?php the_permalink();?>">
    <span class="overlay-box"></span>
    </a>
</li>
<?php endwhile; ?>
4

2 回答 2

0

我建议用 javascript 解决这个问题,幻灯片是用 javascript 构建的,所以它应该可以解决问题。
全局步骤:

  1. 计算<li>项目
  2. 确定它是否是一个 4ish 数字(使用模数或任何你想要的)
  3. 复制<li>您需要的第一个并将它们附加到末尾。

问题问?

于 2012-10-10T09:00:57.357 回答
0

您可以随时使用 WP_Query 的rewind_posts方法重新开始。因此,当您到达初始循环的末尾时,您需要确定要添加多少帖子,并进行一些额外的循环。rewind_posts不会命中数据库,所以它不像额外的查询或任何东西。以下是我在代码中的想法:

$featured_posts = new WP_Query( ... );
while ( $featured_posts->have_posts() ) {
    $featured_posts->the_post();
    // Output your things here
}

// Do we need more posts?
if ( count( $featured_posts->posts ) % 4 > 0 && count( $featured_posts->posts ) > 0 ) {
    $more_to_go = count( $featured_posts->posts ) % 4;

    while ( true ) {
        $featured_posts->rewind_posts();
        while ( $featured_posts->have_posts() ) {
            $featured_posts->the_post();
            // Keep printing your things here

            $more_to_go--;
            if ( $more_to_go < 1 )
                break 2; // break both while loops
        }
    }
}

这是我的想法,有多个循环,所以即使你的精选帖子只包含一个项目,它也会重复四次。我没有对此进行测试,但希望它能给你一个在哪里挖掘的线索。

干杯!

于 2012-10-10T09:42:54.610 回答