2016-11-03 9 views
0

Тема kinda говорит все. Мне нужно только втягивать первые два поля поля повторителя ACF.Wordpress ACF Repeater Field - только втягивать первые 2 поля

Вот что я пытаюсь использовать, но это явно не так:

<?php $args = [ 'posts_per_page' => 2, 'order' => 'desc']; ?> 
<?php $ar = new WP_Query($args); ?> 

<?php if($ar->have_rows('prodImgs')): while ($ar->have_rows('prodImgs')) : $ar->the_row(); ?> 

    <img src="<?php the_sub_field('prodImg'); ?>" alt=""> 

<?php endwhile; ?> 
<?php endif; ?> 

Как я должен это делать?

+0

Какие поля вы пытаетесь отобразить? Когда вы говорите, что хотите только первые 2 поля, это означает первые две строки ретранслятора? – Jrod

ответ

1
<?php 
// check if the repeater has data 
if(have_rows('prodImgs')) { 
    //counter 
    $i=0; 
    //loop through the rows 
    while(have_rows('prodImgs')) { 
    the_row(); 
    //check if 2 subfields have been shown 
    if ($i > 1) { break; } 
    echo "<img src='" . get_sub_field('prodImg_sub') . "' alt='Lorem ipsum'>"; 
    $i++; 
    } 
} 
?> 

Вы смешиваете яблоки и груши, WP_Query и ACF Repeater поле. WP_Query возвращает данные сообщения, в то время как функция ACF have_rows($repeater_field_name, $post_id); проверяет, есть ли какие-либо данные в пользовательском полевом повторителе, который находится на вашей странице/почте (или если вы укажете $ post_id на соответствующей странице/странице). Больше информации на https://www.advancedcustomfields.com/resources/repeater/

0

<?php $rows = get_field('prodImgs'); ?> 
 

 
<?php $i = 0; if ($rows):?> 
 

 
    <?php foreach($rows as $row): ?> 
 

 
     <img src="<?php echo $rows[$i][/* name of first field */]; ?>" alt=""> 
 
     <?php echo $rows[$i][/* name of Second field */]; ?> 
 

 
    <?php $i++; endforeach; ?> 
 

 
<?php endif; ?>

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

  • Нет связанных вопросов^_^