我这里的代码产品标签可以是动物,生活或市场。我想要做的是分开他们的列表,但是这段代码为动物之后的每个标签创建一个新的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让你不停地回归动物。
我已经意识到代码在我的产品的woocommerce循环中,因此$versionvales
会针对每种产品进行更新,$previousTag
也会针对每种产品重置为动物。
答案 0 :(得分:0)
您在每个循环中重新初始化了$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;
}
}
}
?>
答案 1 :(得分:0)
您需要在进入$previousTag = 'animals'
循环之前初始化foreach
,否则在每次迭代开始时它将重新初始化为等于'animals':
if($versionvalues){
$previousTag = 'animals';
foreach ( $versionvalues as $versionvalue ) {
.....
}
}
答案 2 :(得分:0)
每次都不要覆盖变量
$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;
}
}
}
?>