下面的代码想显示两个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];
?>
对于服务器速度,上述代码是否正常?
最合适的回答,由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>\';
}