我正在为WooCommerce产品类别创建Mega菜单。我可以使用以下代码获取所有子类别的列表;
$parent_id = 37; //ID of the Parent Category
$subCat_of_parent = get_terms('product_cat',array('child_of' => $parent_id));
然后在以下html结构中使用;
<div class="row">
<div class="col-md-6">
<ul>
<?php
foreach ($subCat_of_parent as $subcat) {
?>
<li>
<a href="<?php echo get_category_link($subcat->term_id); ?>"><?php echo $subcat->name; ?></a>
</li>
<?php
}
?>
</ul>
</div>
</div>
通过以这种格式获取父类别的所有子类别列表来工作;
<div class="row">
<div class="col-md-6">
<ul>
<li><a>1st subcategory</a></li>
<li><a>2nd subcategory</a></li>
<li><a>3rd subcategory</a></li>
<li><a>4th subcategory</a></li>
<li><a>5th subcategory</a></li>
<li><a>6th subcategory</a></li>
</ul>
<div>
</div>
我想要实现的是在第三个子类别之后,它应该中断并继续在新的列上,以便我可以得到类似的东西;
<div class="row">
<div class="col-md-6">
<ul>
<li><a>1st subcategory</a></li>
<li><a>2nd subcategory</a></li>
<li><a>3rd subcategory</a></li>
</ul>
<div>
<div class="col-md-6">
<ul>
<li><a>4th subcategory</a></li>
<li><a>5th subcategory</a></li>
<li><a>6th subcategory</a></li>
</ul>
<div>
</div>
我该如何实现?感谢您的提前帮助
答案 0 :(得分:4)
您可以使用array_chunk()将数组分为3组。
<div class="row">
<?php
$chunks = array_chunk($subCat_of_parent, 3);
foreach ($chunks as $group) {
print '<div class="col-md-6">';
print '<ul>';
foreach ($group as $subcat) {
print '<li>';
//to-do
print '</li>';
}
print '</ul>';
print '</div>';
}
?>
</div>
答案 1 :(得分:3)
您需要每三个类别发出内部<div class="col-md-6"><ul>
和</ul></div>
部分。
这是伪代码:
<div class="row">
$i = 0
foreach ($subCat_of_parent as $subcat) {
if ($i == 0)
,发出开始div
标签并开始ul
标签。$i = ($i + 1) % 3
if ($i == 0)
,发出close ul
标签并关闭div
标签。如果子类别的数量不是三的倍数,则最后需要额外的逻辑以确保最后一个类别已正确关闭。
答案 2 :(得分:1)
<?php
$arr = array(1, 2, 3, 4,5,6);
$count = 0;
?>
<div class="row">
<?php
foreach ($subCat_of_parent as $subcat)
{
// echo "count =".$count;
if($count%3 == 0)
{
echo ('<div class="col-md-6">
<ul>');
}
$count++;
?>
<li>
<a href="<?php echo get_category_link($subcat->term_id); ?>"><?php echo $subcat->name; ?></a>
</li>
<?php
if($count%3 == 0)
{
echo ('
</ul></div>');
}
}
?>
</div>
答案 3 :(得分:1)
下面的代码有效,您可以使用它。
<?php
$subCat_of_parent = array('1st sub', '2nd sub', '3rd sub', '4th sub', '5 sub', '6 sub', '7 sub');
$subCat_of_parent = array_chunk($subCat_of_parent, 3);
?>
<div class="row">
<?php
foreach ($subCat_of_parent as $subcats) {
?>
<div class="col-md-6">
<ul>
<?php
foreach ($subcats as $subcat) {
?>
<li><a href="#"><?php echo $subcat; ?></a></li>
<?php
}
?>
</ul>
</div>
<?php
}
?>
</div>