为foreach()不一致提供的参数无效

时间:2018-01-17 22:44:12

标签: php wordpress

我对WordPress相对较新,并且对附带代码的错误感到困惑。它运行正常返回计数但抛出上述警告。它不会在我的localhost上抛出错误,并且我在同一页面上运行类似的循环而没有警告:

<?php  
$typecount = 0;
$deal_name = "Wing Night";

$args = array( 'post_type' => 'dealdetails', 'posts_per_page' => -1  );
query_posts( $args );

while ( have_posts() ) : the_post();
      ?>
      <?php
        $deal_type = get_field('deal_type');
        foreach($deal_type as $x => $x_value){
        if($x_value == $deal_name){
        $typecount++;
        }
      }
    ?>
    <?php
endwhile;
echo '(' . $typecount. ')';
?>

1 个答案:

答案 0 :(得分:1)

您正在尝试将foreach用于非数组变量。 get_field()可能会返回非数组值。

以下是您的一些解决方法:

    $deal_type = get_field('deal_type');

    if(is_array($deal_type)){
       foreach($deal_type as $x => $x_value){
          if($x_value == $deal_name){
             $typecount++;
          }
       }
    }else{
       if($x_value == $deal_name){
          $typecount += 1;
       }
    }