WP_QUERY文章按列偏移量排序

时间:2013-07-09 作者:NETCreator Hosting - WebDesign

下面的代码想显示两个collumn中的文章列表。

    <?php
    $i = 0;
    $the_query = new WP_Query( \'showposts=35&offset=0\' );
    while ($the_query -> have_posts()) : $the_query -> the_post();
    $i++;
    ?>

    <?php if ($i == "1") { ?>
    <div style="padding-top: 10px; float: left; width: 50%;">
        <?php the_title(); ?>
    <?php } ?>


    <?php if (in_array($i, array(3,4,5,6,7,8,9,10))) { ?>
        <?php the_title(); ?>
    <?php } ?>

   <?php if ($i == 10) { ?>
            </div>
   <?php } ?>

    <?php if ($i == "2") { ?>
        <div style="padding-top: 10px; float: right; width: 50%;">
        <?php the_title(); ?>
        </div>          
    <?php } ?>

    <?php endwhile;?>
问题是:$i=2的文章出现在$i=1的文章下面。这不是我在上面代码中使用的顺序。

如何按此顺序排列物品?

附言:我的文章(i=2美元)也出现在第一个COLLMN(左对齐)中,因为</div> 在文章之后,i=10美元。

如果你有什么问题,或者你不明白,我就在这里。

编辑:

我的代码:

<?php
$the_query = new WP_Query( \'showposts=35&offset=0\' );
while ($the_query -> have_posts()) : $the_query -> the_post();
$titles[] = get_the_title();               
$excerpts[] = get_the_excerpt(); 
endwhile;
?>
要显示第一篇文章:

<?php
echo $titles[0];
echo "<br/>";
echo $excerpts[0];
?>
对于服务器速度,上述代码是否正常?

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

在两个不同的阵列中分离立柱,然后分别在两个阵列上循环:

$columns      = array ( \'first\' => array (), \'second\' => array () );
$first_column = array( 1, 3, 4, 5, 6, 7 );

// separation
foreach ( $the_query->posts as $index => $post )
{
    if ( in_array( $index + 1, $first_column ) )
        $columns[ \'first\' ][] = $post;
    else
        $columns[ \'second\' ][] = $post;
}

unset ( $post );

// render one column
echo \'First column<br>\';
foreach ( $columns[ \'first\' ] as $p )
{
    print $p->ID
        . get_the_title( $p ) . \'<br>\'
        . get_the_post_thumbnail( $p->ID ) . \'<br>\';
}

// render the next column
echo \'Second column<br>\';
foreach ( $columns[ \'second\' ] as $p )
{
    print $p->ID
        . get_the_title( $p ) . \'<br>\'
        . get_the_post_thumbnail( $p->ID ) . \'<br>\';
}

SO网友:Adam Genshaft

您还可以尝试一种更简单的方法here:

@media screen and (min-width : 640px){

.home ul.index > li{

    display:inline-block;
    clear:none;
}

.home .index > li:nth-child(odd){

    width:50%;
    float:left;
    border:1px solid #fff;
    clear:both;
}
.home .index > li:nth-child(even){

    width:46%;
    float:right;
    border:1px solid #fff;
}}

结束

相关推荐

Link to all posts page?

因此,我在默认情况下隐藏了我的管理栏,因为它很难看,而不是编写一堆if语句,因此WP admin面板中的某些元素只对登录的用户显示,到目前为止还不错。我遇到的问题是“所有帖子”屏幕,url是wp admin/edit。php,但这给了我一个404错误。这样可以使用户进入新的post屏幕。<?php global $user_login; get_currentuserinfo(); if ($user