wordpress 拆分 <li> 形成 3 列
wordpress splitting the <li> to form 3 columns
我目前使用它来将我存档的 post 放入一年然后一个月的列表中,计数为 post。我不确定如何用计数打破 <li>
。我希望它能将它们平均分成 3 列,每列 4 <li>
。我尝试使用 CSS3 列来解决这个问题,但它会导致 <li>
有点不稳定。
这是我的代码:
<?php
$year_prev = null;
$months = $wpdb->get_results( "SELECT DISTINCT MONTH( post_date ) AS month,
YEAR( post_date ) AS year,
COUNT( id ) as post_count FROM $wpdb->posts
WHERE post_status = 'publish' and post_date <= now( )
and post_type = 'post'
GROUP BY month , year
ORDER BY post_date DESC");
foreach($months as $month) :
$year_current = $month->year;
if ($year_current != $year_prev){
if ($year_prev != null){?>
</ul></div><div class="clear"></div>
<?php } ?>
<div class="archive-year-row"><h3><?php echo $month->year; ?></h3>
<ul class="archive-list">
<?php } ?>
<li>
<a href="<?php bloginfo('url') ?>/<?php echo $month->year; ?>/<?php echo date("m", mktime(0, 0, 0, $month->month, 1, $month->year)) ?>">
<span class="archive-month"><?php echo date("F", mktime(0, 0, 0, $month->month, 1, $month->year)) ?></span>
<span class="archive-count"><?php echo $month->post_count; ?></span>
</a>
</li>
<?php $year_prev = $year_current;
endforeach; ?>
</ul>
所以基本上只要设置 $i = 1;在每个操作之后。
然后迭代 $i++;就在关闭 foreach 之前。
然后您可以使用 $i 作为计数器并测试 $i 的值。
像这样。
if($i == 4 || $i ==8){
echo "</ul><ul>"; // this assumes you are opening and closing your column with the <ul></ul> tags
}
这不是完整的代码,但应该为您指明正确的方向。
我目前使用它来将我存档的 post 放入一年然后一个月的列表中,计数为 post。我不确定如何用计数打破 <li>
。我希望它能将它们平均分成 3 列,每列 4 <li>
。我尝试使用 CSS3 列来解决这个问题,但它会导致 <li>
有点不稳定。
这是我的代码:
<?php
$year_prev = null;
$months = $wpdb->get_results( "SELECT DISTINCT MONTH( post_date ) AS month,
YEAR( post_date ) AS year,
COUNT( id ) as post_count FROM $wpdb->posts
WHERE post_status = 'publish' and post_date <= now( )
and post_type = 'post'
GROUP BY month , year
ORDER BY post_date DESC");
foreach($months as $month) :
$year_current = $month->year;
if ($year_current != $year_prev){
if ($year_prev != null){?>
</ul></div><div class="clear"></div>
<?php } ?>
<div class="archive-year-row"><h3><?php echo $month->year; ?></h3>
<ul class="archive-list">
<?php } ?>
<li>
<a href="<?php bloginfo('url') ?>/<?php echo $month->year; ?>/<?php echo date("m", mktime(0, 0, 0, $month->month, 1, $month->year)) ?>">
<span class="archive-month"><?php echo date("F", mktime(0, 0, 0, $month->month, 1, $month->year)) ?></span>
<span class="archive-count"><?php echo $month->post_count; ?></span>
</a>
</li>
<?php $year_prev = $year_current;
endforeach; ?>
</ul>
所以基本上只要设置 $i = 1;在每个操作之后。 然后迭代 $i++;就在关闭 foreach 之前。
然后您可以使用 $i 作为计数器并测试 $i 的值。
像这样。
if($i == 4 || $i ==8){
echo "</ul><ul>"; // this assumes you are opening and closing your column with the <ul></ul> tags
}
这不是完整的代码,但应该为您指明正确的方向。