计算foreach循环并在php中创建新元素
我正在为WooCommerce产品类别制作一份超大菜单。我能够使用下面的代码获得所有子类别的列表计算foreach循环并在php中创建新元素,php,wordpress,woocommerce,foreach,Php,Wordpress,Woocommerce,Foreach,我正在为WooCommerce产品类别制作一份超大菜单。我能够使用下面的代码获得所有子类别的列表 $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">
$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>
- 第一子类别
- 第二子类
- 第三子类别
- 第四子类
- 第五子类
- 第六子类别
我怎样才能做到这一点?提前感谢您的帮助您需要每三个类别发出一次内部
和
零件
以下是伪代码:
- 发出
- 设置计数器,类似于
$i=0
- 启动for循环,
foreach($subCat\u作为$subCat的父对象){
- 现在说
if($i==0)
,发出startdiv
标记和startul
标记
- 发出列表项
$i=($i+1)%3
- 现在说
if($i==0)
,发出closeul
标记和closediv
标记
如果子类别的数量不是三的倍数,则需要在末尾添加额外的逻辑,以确保最后一个组正确关闭。您可以使用将数组分成三个组
<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>
下面的代码正在运行,您可以使用它
<?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>
感谢@Ray的故障,我能够在您的故障后使其正常工作在行上测试后代码出现错误(错误:可恢复致命错误:类WP_Term的对象无法转换为字符串)…我编辑了您的答案,使其正常工作