仅显示带有ACF的类型的第一个元素

时间:2018-10-30 作者:tom84

我只想显示“type”的第一个元素,而不是所有具有“payment services”类型的元素。我该怎么做?希望有人能帮我。。。

<?php if( have_rows(\'events\', 4127) ):
                    while ( have_rows(\'events\', 4127) ) : the_row();

                        $types = get_sub_field(\'type\');

                        foreach($types as $type) {
                            if ($type == "payment-services") { ?> 



                        <div class="item-<?php foreach($types as $type ): echo $type; echo \' \' ; endforeach; ?>">
                            <img class="events-images" src="<?php the_sub_field(\'image\', 4127); ?>" alt="">
                            <h2 class="events-title"><?php the_sub_field(\'title\', 4127); ?></h2>
                            <p class="events-date"><?php the_sub_field(\'date\', 4127); ?></p>
                            <p class="events-location"><?php the_sub_field(\'location\', 4127); ?></p>
                            <a class="events-url btn" href="<?php the_sub_field(\'url\', 4127); ?>"><?php the_sub_field(\'url_text\'); ?></a>
                        </div>

                         <?php break; ?>
                    <?php }
                        }
                endwhile;
            endif; ?>

1 个回复
SO网友:Bob

如果我理解正确,那么您希望将整个代码都包含在内if ($type == "payment-services") 只运行一次
有一种更简单的方法可以做到这一点,但有一个建议是:

在for循环之前添加一个具有特定值的变量(例如$run=“yes”)

  • 将您只想第一次运行的代码放在if语句中,在该语句中,只有当上述变量具有其初始值时才会运行,在第一次迭代期间更改变量的值,以便整个if语句在循环的其余部分为false
  • 因此您的代码可能如下所示:

    ....
    $run="yes";
    foreach($types as $type) {
      if($run=="yes"){
        if ($type == "payment-services") { 
    
          rest of code which will only run once
    
          $run="no";
        }       
      }
    }
    ....
    

    结束

    相关推荐

    仅显示带有ACF的类型的第一个元素 - 小码农CODE - 行之有效找到问题解决它

    仅显示带有ACF的类型的第一个元素

    时间:2018-10-30 作者:tom84

    我只想显示“type”的第一个元素,而不是所有具有“payment services”类型的元素。我该怎么做?希望有人能帮我。。。

    <?php if( have_rows(\'events\', 4127) ):
                        while ( have_rows(\'events\', 4127) ) : the_row();
    
                            $types = get_sub_field(\'type\');
    
                            foreach($types as $type) {
                                if ($type == "payment-services") { ?> 
    
    
    
                            <div class="item-<?php foreach($types as $type ): echo $type; echo \' \' ; endforeach; ?>">
                                <img class="events-images" src="<?php the_sub_field(\'image\', 4127); ?>" alt="">
                                <h2 class="events-title"><?php the_sub_field(\'title\', 4127); ?></h2>
                                <p class="events-date"><?php the_sub_field(\'date\', 4127); ?></p>
                                <p class="events-location"><?php the_sub_field(\'location\', 4127); ?></p>
                                <a class="events-url btn" href="<?php the_sub_field(\'url\', 4127); ?>"><?php the_sub_field(\'url_text\'); ?></a>
                            </div>
    
                             <?php break; ?>
                        <?php }
                            }
                    endwhile;
                endif; ?>
    

    1 个回复
    SO网友:Bob

    如果我理解正确,那么您希望将整个代码都包含在内if ($type == "payment-services") 只运行一次
    有一种更简单的方法可以做到这一点,但有一个建议是:

    在for循环之前添加一个具有特定值的变量(例如$run=“yes”)

  • 将您只想第一次运行的代码放在if语句中,在该语句中,只有当上述变量具有其初始值时才会运行,在第一次迭代期间更改变量的值,以便整个if语句在循环的其余部分为false
  • 因此您的代码可能如下所示:

    ....
    $run="yes";
    foreach($types as $type) {
      if($run=="yes"){
        if ($type == "payment-services") { 
    
          rest of code which will only run once
    
          $run="no";
        }       
      }
    }
    ....
    

    相关推荐