将WordPress循环拆分为多个布局

时间:2012-08-12 作者:gil hamer

好的,所以我搜索了很多,找不到我问题的直接答案。我只是想使用一个分类循环,在wordpress站点的分类页面中显示帖子。假设有6篇文章是为了这个目的。

通过使用以下简单的查询循环可以非常简单地完成此任务:

<?php query_posts(\'showposts=6\'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
// content or anything comes here
<?php endwhile; endif; ?>
然而,我试图将我的循环“打断”为两种不同的布局:

两篇文章以特色图片展示其余四篇文章,采用不同的设计,仅显示标题+摘录+阅读更多。以下是一个示例,最能说明我正在努力实现的目标:https://dl.dropbox.com/u/4405634/split-loop-layout.jpg

web上有大量的解决方案,但其中一些太复杂,有些无法在类别循环中工作。

我在很多网站上都看到过,但仍然找不到简单的方法。有人有好的解决方案吗?

非常感谢。吉尔

3 个回复
最合适的回答,由SO网友:Ciprian 整理而成

只需使用“offset”参数创建2个查询,并通过以下方式将它们分隔开:

<?php wp_reset_query(); ?>
显示第四个帖子(偏移量从0开始):

<?php $query = new WP_Query( \'offset=3\' ) ); ?>
编辑:以下是一些示例代码:

<?php query_posts(\'offset=0&showposts=2&order=ASC\'); ?>
<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
    <p><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
<?php endwhile; endif; ?>

<?php wp_reset_query(); ?>

<?php query_posts(\'offset=2&showposts=4&order=ASC\'); ?>
<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
    <p><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
<?php endwhile; endif; ?>
就是这样。你将有两篇文章,你可以按照自己的方式来设计风格,接下来的四篇文章,你也可以用不同的方式来设计风格。

SO网友:Milo

通过检查当前输出的帖子$wp_query->current_post:

<?php 
    if ( have_posts() ) :
        while ( have_posts() ) :
            the_post();

                // first two post to show both title, excerpt
                if( 2 > $wp_query->current_post ) :
                    the_title();
                    the_excerpt();

                //else (remaining) show only title    
                else :
                    the_title();
                endif;

        endwhile;
    endif; 
?>

SO网友:Syed Balkhi

通过在循环中使用如下计数器,可以非常轻松地完成此操作:

<?php
$counter = 1;
$myquery = new WP_Query( array( \'posts_per_page\' => 6 ) );
while ( $myquery->have_posts() ) : $myquery->the_post(); 

if($counter == 1) { ?>

First post Look Different

<?php } else { ?>

Rest looks different

<?php
}
$counter++;
endwhile;
// Reset Post Data
wp_reset_postdata();
?>

结束

相关推荐

为除特定类别之外的所有帖子类型的帖子形成WP_Query

我需要从博客获取帖子,自定义帖子类型1,自定义帖子类型2。自定义职位类型3,来自类别1或类别2或类别3或类别4或类别5或类别6或类别7或类别8。我有这个,但不起作用。我没有得到任何结果,也没有错误。<?php function filter_where_categs() { $where .= \" AND (category_name => array(\'black-star-crescent-moon\', \'audio\', \'b