2016-10-27 3 views
0

프로그램 일정이있는 WordPress 페이지를 만들고 있습니다. 우리가 쉽게 부품을 채우고 물건 등을 제거 할 수 있도록 고급 사용자 정의 필드를 사용합니다. 그러나 각 블록에는 href가있는 자체 축소 가능 설명이 있습니다. 그러나 리피터를 만들 때 그것은 접을 수있는 부분의 ID를 동일하게 유지하고 작동하지 않는다. 왜냐하면 항상 '설명 1'을 열 것이다.각 리피터 필드의 고유 ID (고급 사용자 정의 필드)

내 질문 : 고유 한 ID (즉, progam1 , program2 등)을 각 중계기 루프에 연결합니다. 필자는 아래 코드에서 보았 듯이 $ counter를 사용하여 시도했지만 정확한 적용 방법을 모르겠습니다.

<?php 
while (have_rows('day_1')) : the_row(); 

    $progtime    = get_sub_field('prog_time'); 
    $progtitle   = get_sub_field('prog_title'); 
    $progimage   = get_sub_field('prog_image'); 
    $progsubspeaker  = get_sub_field('prog_sub_speaker'); 
    $progsubdescription = get_sub_field('prog_sub_description'); 
    $progsubduration = get_sub_field('prog_sub_duration'); 
    $progsublocation = get_sub_field('prog_sub_location'); 
    $progsubabouttitle = get_sub_field('prog_sub_abouttitle'); 
    $progsubabout  = get_sub_field('prog_sub_about'); 
    $progsubabouturl = get_sub_field('prog_sub_abouturl'); 
    $counter = 1; 

    ?> 
    <!-- PROGRAM 1--> 
    <div class="panel panel-default"> 

     <!-- Program Heading --> 
     <div class="panel-heading" role="tab" id="heading1"> 

      <div class="row"> 
       <div class="col-lg-1 col-md-1 col-sm-1"> 
        <p class="date"><?php echo $progtime; ?></p> 
       </div> 

       <div class="col-lg-11 col-md-11 col-sm-11"> 

        <h4 class="panel-title"> 
         <a data-toggle="collapse" data-parent="#accordion" href="#Program<?php echo $counter; ?>" aria-expanded="true" aria-controls="Program1"> 
          <?php echo $progtitle; ?> 
         </a> 
        </h4> 
       </div> 
      </div> 

     </div> 

     <div id="Program<?php echo $counter; ?>" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading1"> 
      <!-- Program Content --> 
      <div class="panel-body"> 
       <div class="row"> 
        <div class="col-lg-2 col-md-2 col-sm-2"> 
         <img class="img-responsive img-circle" src="<?php echo $progimage; ?>" alt=""> 
        </div> 

        <div class="col-lg-7 col-md-7 col-sm-10"> 
         <p class="speaker-name uppercase"><?php echo $progsubspeaker; ?></p> 
          <h4><?php echo $progtitle; ?></h4> 
           <p><?php echo $progsubdescription; ?></p> 

           <p><i class="fa fa-lg fa-clock-o"></i><span class="small"><?php echo $progsubduration; ?></span></p> 
           <p><i class="fa fa-lg fa-map-marker"></i> <span class="small"><?php echo $progsublocation; ?></span></p> 
          </div> 

          <div class="col-lg-3 col-md-3 col-sm-10"> 
           <h5><?php echo $progsubabouttitle; ?></h5> 
           <p class="small"><?php echo $progsubabout; ?></p> 
           <span class="about-speaker"><i class="fa fa-lg fa-globe"></i> <a class="small" href="#"><?php echo $progsubabouturl; ?></a></span> 
          </div> 

         </div> 
        </div> 

       </div> 

      </div> 
      <?php $counter++; ?> 
     <?php endwhile; ?> 

답변

0

귀하의 문제는 $ 카운터는 루프 내에서 (1)로 정의된다, 그래서 매번 그것이 while 문 위에

1. 동일한 이동 $ 카운터 = 1로 다시 설정하는 것이 당신을 위해 작동해야 실행!

+0

Oh dang, 내가 입력 한 것처럼 찾았습니다. :) –

0

알아보기 나는 해결책으로 this source on stackoverflow를 사용했다.

루프 앞에 $ counter를 정의하고 루프에 $ counter ++를 ​​추가해야 루프가 반복 될 때마다 +1이 추가됩니다.

관련 문제