循环并比较

时间:2013-12-06 06:52:16

标签: php wordpress syntax foreach

我这里的代码产品标签可以是动物,生活或市场。我想要做的是分开他们的列表,但是这段代码为动物之后的每个标签创建一个新的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也会针对每种产品重置为动物。

3 个答案:

答案 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;
                }



       } 
}

?>