Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
结合php循环和计数-Wordpress ACF_Php_Wordpress_Advanced Custom Fields - Fatal编程技术网

结合php循环和计数-Wordpress ACF

结合php循环和计数-Wordpress ACF,php,wordpress,advanced-custom-fields,Php,Wordpress,Advanced Custom Fields,我想知道是否有人能帮我组合两段代码。我有一个块在项目中循环,另一个块的开头显示计数,希望通过每两个项目在项目周围添加一个div,我能够显示在行中循环的项目。。。这是代码的第一位,循环: <?php if(get_field('areas')): ?> <?php while(has_sub_field('areas')): ?> <div class="single-area-item

我想知道是否有人能帮我组合两段代码。我有一个块在项目中循环,另一个块的开头显示计数,希望通过每两个项目在项目周围添加一个div,我能够显示在行中循环的项目。。。这是代码的第一位,循环:

<?php if(get_field('areas')): ?>



                <?php while(has_sub_field('areas')): ?>


                    <div class="single-area-item six columns">
                        <p> <img src="<?php the_sub_field('area_icon'); ?>" style="width:100%;"> <p>
                        <h4> <?php the_sub_field('area_title'); ?> </h4> 
                        <p> <?php the_sub_field('area_info'); ?> <p>
                    </div>

                <?php endwhile; ?>



        <?php endif; ?>

“style=”宽度:100%;“>

我正在使用Wordpress的高级自定义字段,这是对repeater字段的一个接一个地显示

下面是我找到的代码,希望能按行显示它们

<?php

$num = 1;
foreach ( $terms as $term ) { 
 if($num%2) {
  echo '<div class="area-row">';
 }

 // Other Code 

 if($num %2) {
  echo '</div>';
 }
 $num++
}

?>

我想把它们显示成两行

一二 三四 五六

等等

所以,我猜我需要以某种方式组合代码…我目前有这样一个:但它似乎不起作用:

<?php

$num = 1;
foreach ( $terms as $term ) { 
 if($num%2) {
  echo '<div class="area-row">';
 }

if(get_field('areas')): ?>



                <?php while(has_sub_field('areas')): ?>


                    <div class="single-area-item six columns">
                        <p> <img src="<?php the_sub_field('area_icon'); ?>" style="width:100%;"> <p>
                        <h4> <?php the_sub_field('area_title'); ?> </h4> 
                        <p> <?php the_sub_field('area_info'); ?> <p>
                    </div>

                <?php endwhile; ?>



        <?php endif; ?>

 if($num %2) {
  echo '</div>';
 }
 $num++
}

?>

“style=”宽度:100%;“>

如果($num%2){
回声';
}
$num++
}
?>

好的,看来这其中有几个简单的问题,您在if声明之后关闭了php标记,然后继续编写php,而没有重新打开php标记。if($num%2)语句也有一个轻微的逻辑错误,因为其中一个需要是if,另一个需要是if,所以备用的

试试这段代码,让我知道你的进展:

<?php
if(get_field('areas')): 
    $num = 1;    
?>
        <?php while(has_sub_field('areas')): 
        if($num%2) {
          echo '<div class="area-row">';
        }  ?>

            <div class="single-area-item six columns">
                <p> <img src="<?php the_sub_field('area_icon'); ?>" style="width:100%;"> <p>
                <h4> <?php the_sub_field('area_title'); ?> </h4>
                <p> <?php the_sub_field('area_info'); ?> <p>
            </div>
            <?php 
             if(!$num%2) {
               echo '</div>';
             }
             $num++
         endwhile; ?>
     <?php endif; ?>

“style=”宽度:100%;“>


这个问题背后的主要原因是我能够针对循环项目的第三个项目,因为它上面有填充物,破坏了我需要删除的行

从那以后,我找到了另一个似乎有效的解决方案

通过使用第n个子元素,我能够针对并删除循环通过的每三个项目上的填充-修复问题

.single-area-item:nth-child(3n+3) {  
  margin-left: 0;
}

这是针对行或2个项目,如果是3行或4行,则需要分别针对第4项或第5项。

当你说它似乎不起作用时,你的意思是什么?你实际得到的输出是什么?Hi@ben我恐怕没有得到任何输出,当我尝试该代码时,网站不会加载并显示白色空白页面。这是整个模板文件吗?不,这不是整个模板文件,这只是我遇到问题的代码…这是只有第一块代码的页面…我的问题是,第三个下拉项的左侧有填充,将其他项向下推一行…非常感谢@Ben,但它似乎也不起作用-再次是Im加载时得到一个空白的白页…这是否意味着某个地方或某物缺少结束标记?我不确定这是否是最好的方法,但我实际上已设法使用第n个子元素使其正常工作!…单个区域项:第n个子项(3n+3){左边距:0;}如果只是删除填充,这是一个很好的解决方案。令人沮丧的是,我们无法解决潜在的问题啊-这是我有问题的转发器字段,我可以让它与正常的自定义帖子类型一起工作…我将添加第n个孩子作为答案。非常感谢您花时间查看