2013-09-16 2 views
0

Способ, которым я пытаюсь установить это, заключается в том, что если ссылка не выбрана, отображается только изображение, но если выбрана ссылка, а также изображение, то Я хочу, чтобы ссылка была обернута вокруг изображения, вот пример того, что у меня есть на данный момент: не кажетсяРасширенные пользовательские поля - если проблема с полем ввода/вывода

<?php if(get_field('block_repeater')): ?> 
    <ul> 

     <?php while(has_sub_field('block_repeater')): ?> 
     <li> 
      <!-- problem --> 
      <?php if(get_sub_field('block_link')): ?> 

       <?php while(has_sub_field('block_image')): ?> 
        <a class="img" href="<?php the_sub_field('block_link'); ?>"> 
         <img src="<?php the_sub_field('block_image'); ?>" alt="" /> 
         <span class="square-arrow"></span> 
        </a> 
       <?php endwhile; ?> 

      <?php endif; ?> 
      <!--//problem --> 

      <?php if(get_sub_field('block_image')): ?> 
       <img src="<?php the_sub_field('block_image'); ?>" alt="" /> 
      <?php endif; ?> 
     </li> 
     <?php endwhile; ?> 

    </ul> 
<?php endif; ?> 

работать правильно, хотя, как его рендеринг около ста из них:

<a class="img" href=""> 
<img alt="" src=""> 
<span class="square-arrow"></span> 
</a> 

Не думайте, что кто-нибудь знает, что я сделал неправильно, пожалуйста?

ответ

0

Это потому, что вы выполняете цикл и сохраняете этот блок html между циклом while, чтобы этот блок печатался до тех пор, пока цикл не закончится.

<?php while(has_sub_field('block_image')): ?> 
    <!-- 
     This part will be printed as long as 
     has_sub_field('block_image') returns true 
    --> 
<?php endwhile; ?> 

Если вы хотите распечатать эту часть только один раз, а затем удалить петлю, просто закомментируйте эти строки, как

<?php //while(has_sub_field('block_image')): ?> 
    <!-- keep everything here as it is --> 
<?php //endwhile; ?> 
+0

Спасибо за ответ ааа я вижу, но если я закомментируйте и нет изображения, тогда на странице будет только пустой тег изображения. – Adam

+0

Вы можете проверить с помощью ''. –

Смежные вопросы