如何重置wordpress中每个新帖子的php计数

时间:2018-02-27 18:23:12

标签: php wordpress loops

我正在尝试编写一个执行两次计数的函数。更容易看到代码来理解我想要实现的目标:

$i = 1;

while ($jobs->have_posts()) : $jobs->the_post();
   $i++;

   $html_out .= '<tr class="row-'. $i .'">';
   $html_out .= '<td class="column-'. $i++ .'"></td>';
   $html_out .= '<td class="column-'. $i++ .'"></td>';
   $html_out .= '<td class="column-'. $i++ .'"></td>';
   $html_out .= '</tr>';
endwhile;

这里的代码不完整,但我希望这足以让我们了解这个想法。所以,我有一个<tr>的课程row-1。在那段时间里,我希望第一篇文章<tr>开始row-2并继续从那里开始增加。

<tr>内,我有<td>个列列。我需要他们从column-1开始并从那里开始增加,但是在新帖子上它会继续计数,所以第二个帖子的第一个<td>将在column-4输出,但我需要它重置回column-1

我希望这是有道理的。这是while

中帖子所需输出的示例
<tr class="row-2">
   <td class="column-1"></td>
   <td class="column-2"></td>
   <td class="column-3"></td>
</tr>
<tr class="row-3">
   <td class="column-1"></td>
   <td class="column-2"></td>
   <td class="column-3"></td>
</tr>
<tr class="row-4">
   <td class="column-1"></td>
   <td class="column-2"></td>
   <td class="column-3"></td>
</tr>

2 个答案:

答案 0 :(得分:1)

使用两个索引并在每次迭代时重置列索引:

$row = 2;

while ($jobs->have_posts()) : $jobs->the_post();

   $col = 1;

   $html_out .= '<tr class="row-'. $row .'">';
   $html_out .= '<td class="column-'. $col++ .'"></td>';
   $html_out .= '<td class="column-'. $col++ .'"></td>';
   $html_out .= '<td class="column-'. $col++ .'"></td>';
   $html_out .= '</tr>';

   $row++;

endwhile;

答案 1 :(得分:1)

我会使用两个计数器,如下所示:

$row = 1;

while ($jobs->have_posts()) : $jobs->the_post();
   $column = 1;

   $html_out .= '<tr class="row-'. $row++ .'">';
   $html_out .= '<td class="column-'. $column++ .'"></td>';
   $html_out .= '<td class="column-'. $column++ .'"></td>';
   $html_out .= '<td class="column-'. $column .'"></td>'; //this one will be reset to 1 in the next interation, no need to increment
   $html_out .= '</tr>';
endwhile;