2014-01-15 3 views
2

Я использую плагин ACF на своем веб-сайте. Я хочу отобразить на одной странице первую строку (URL-адрес изображения) поля ретранслятора с детской страницы.получить первый ряд (изображение) поля повторителя ACF

вот страница с моего сайта (все изображения будут загружены, но отображается только первый, но я хотел бы загрузить только первый)

http://www.amsbooking.fr/mattieumoreau/artists/

вот код на моей странице который отображает все изображения:

 <?php 

     $args = array(
     'post_type'  => 'page',  
     'post_parent' => $post->ID, 
     'order'   => 'ASC', 
     'orderby'  => 'menu_order' 
     ); 

     $parent = new WP_Query($args); 

     if ($parent->have_posts()) : ?> 

     <?php while ($parent->have_posts()) : $parent->the_post(); ?> 

     <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"> 

     <div class="cartouche_menu_artistes"> 

     <div id="parent-<?php the_ID(); ?>" class="parent-page"> 

     <div class="cartouche_crop"> 

     <?php while(has_sub_field('photos_presse')): ?> // my repeater field 

     <img src="<?php the_sub_field('photo'); ?>" class="artists_menu"> // my sub-field, the one I want to get the first row 

     <?php endwhile; ?> 


     </div> 

     <div class="bandeau"></div> 

     <h1><?php the_title(); ?></h1>    

     <div class="bandeau"></div> 

     </div> 


     </div> 
     <?php endwhile; ?> 
     </a> 


     <?php endif; wp_reset_query(); ?> 

является URL фото, а не сама фотография ... поэтому у меня есть проблемы, чтобы получить первую строку, но я хочу, чтобы сохранить его таким образом.

Я нашел в Интернете, но я не могу управлять, чтобы приспособить его к моему делу:

<?php 

$rows = get_field('repeater_field_name'); // get all the rows 
$first_row = $rows[0]; // get the first row 
$first_row_image = $first_row['sub_field_name' ]; // get the sub field value 

// Note 
// $first_row_image = 123 (image ID) 

$image = wp_get_attachment_image_src($first_row_image, 'full'); 
// url = $image[0]; 
// width = $image[1]; 
// height = $image[2]; 
?> 
<img src="<?php echo $image[0]; ?>" /> 

здесь является JSfiddle с моим кодом:

http://jsfiddle.net/5wtRc/

может

кто-нибудь помогает мне в этом?

Большое спасибо за вашу помощь,

ответ

2

Я просто добавил в простом булево, который установлен в ложь, когда изображение извлекается. Затем я добавил логическое значение в условия для цикла while, так что после того, как одно изображение будет выполнено, цикл while завершится с ошибкой и продолжит движение!

<?php 
$first_img = true; 
while($first_img && has_sub_field('photos_presse')): ?> // my repeater field 

    <img src="<?php the_sub_field('photo'); ?>" class="artists_menu"> 
    <?php $first_img = false; ?> 

<?php endwhile; ?> 

Надеюсь, это поможет!

+0

благодарит за ответ @Billy Mathews, но все равно загружает все изображения ... можете ли вы проверить источник? http://www.amsbooking.fr/mattieumoreau/artists/ – mmdwc

+0

Извините, я не понял ваш вопрос. Вы просто хотите загрузить только 1 сообщение? @ user2882154 – Bill

+0

нет Я хочу загрузить первое изображение из поля повторителя из всех сообщений. – mmdwc

1

@mmdwc почти справа. Поскольку ретранслятор является вложенным полем, тогда get_field не будет получать какой-либо контент, пытаясь получить подполе.

<?php 
    $rows = get_sub_field('repeater_field_name'); // get all the rows of the sub field repeater 
    $first_row = $rows[0]; // get the first row of the repeater 
    $first_row_image = $first_row['sub_field_name' ]; // get the sub field value of the nested repeater 
?> 
Смежные вопросы