1 回答
TA贡献1779条经验 获得超6个赞
如果您对数组更熟悉,则可以随时使用该get_posts()函数,它接受参数(几乎)与WP_Query()Class 完全一样。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
子句,所以如果你的帖子消失了或者你移动了这段代码,就会有一个“没有找到”的后备。我在 post 类中使用了一些复杂的三元运算符。我在那里增加它,所以我们不需要另一行来增加
$count
后者,它消除了对多行“if/else”来确定left
or的需要right
。除此之外,您没有提供标记结构,因此如果您不知道差异,我使用了
the_
andget_the_
函数。
- 1 回答
- 0 关注
- 103 浏览
添加回答
举报