1 回答
TA贡献1963条经验 获得超6个赞
如果你对数组更满意,你总是可以使用get_posts()
函数,它(几乎)像WP_Query()
类一样接受参数。 实际上也利用了。get_posts()
WP_Query
也就是说,正如你所提到的,使用“本机PHP”修改你的代码并不困难。它只是一个 while
循环,而不是 foreach
循环,两者都是类似的控制结构。
您所要做的就是添加一个计数器变量,并在每次通过后使用增量运算符递增它:++
;
下面是一个快速代码示例:
$args = array(
'posts_per_page' => 2,
);
$query = new WP_Query( $args );
if( $query->have_posts() ){
$count = 0; // Start a Counter
while( $query->have_posts() ){
$query->the_post();
printf( '<div class="post float-%s">', ($count++ % 2 == 0) ? 'left' : 'right' ); // If counter is odd: "left", even: "right"
printf( '<h4 class="post-title">%s</h4>', get_the_title() );
the_content();
echo '</div>';
}
} else {
echo 'No Posts Found.';
}
几件事:
我将数组移动到它自己的变量。有些查询可能会变得非常复杂,将它们作为指定变量可以提高长期可维护性。
$args
如果您只想,也不需要参数,因为这是默认值。
post_type
post
我添加了一个子句,所以如果你的帖子消失了,或者你移动了这个代码,就会有一个“没有找到”的回退。
if
我在后期类中使用了一些复杂的三元运算符。我在那里递增它,这样我们就不需要另一行来递增后面的行,并且它消除了对多行“if/else”来确定或.
$count
left
right
除此之外,你没有提供标记结构,所以我使用了一个the_,如果你没有意识到其中的区别
,get_the_
函数。
- 1 回答
- 0 关注
- 113 浏览
添加回答
举报