我这里有这个代码,产品标签可以是动物、生命或市场。我想做的是分开它们的列表,但是这个代码为动物后的每个标签创建了一个新的ul
,我不知道为什么,有人能帮忙吗
<?php
$versionvalues = get_the_terms( $product->id, 'product_tag');
if($versionvalues){
$previousTag = 'animals';
foreach ( $versionvalues as $versionvalue ) {
$currentTag = $versionvalue->name;
if($currentTag != $previousTag){
echo '</ul><ul class="products" style="text-align:center;">';
$previousTag = $currentTag;
}else{
$previousTag = $currentTag;
}
}
}
?>
也许wordpress不允许我把get_the_terms值放入变量。我重复了循环中的$previousTag是不断返回动物。
我已经意识到is代码在我的产品的woocommerce循环中,因此,$versionvales
会针对每个产品进行更新,$previousTag
也会针对每个产品重置为动物。
在进入foreach
循环之前,您需要初始化$previousTag='animals'
,否则它将在每次迭代开始时重新初始化为相等的'animals':
if($versionvalues){
$previousTag = 'animals';
foreach ( $versionvalues as $versionvalue ) {
.....
}
}
您在每个循环中重新初始化了$previousTag
。
<?php
$versionvalues = get_the_terms( $product->id, 'product_tag');
if($versionvalues){
$previousTag = 'animals';
foreach ( $versionvalues as $versionvalue ) {
$currentTag = $versionvalue->name;
if($currentTag != $previousTag){
echo '</ul><ul class="products" style="text-align:center;">';
$previousTag = $currentTag;
} else {
$previousTag = $currentTag;
}
}
}
?>
只是不要每次都覆盖变量
$versionvalues = get_the_terms( $product->id, 'product_tag');
if($versionvalues){
$previousTag = 'animals';
foreach ( $versionvalues as $versionvalue ) {
$currentTag = $versionvalue->name;
if($currentTag != $previousTag){
echo '</ul><ul class="products" style="text-align:center;">';
$previousTag = $currentTag;
}else{
$previousTag = $currentTag;
}
}
}
?>