Thanks for posting your solution here @pierrebalian
You could also do this:
$img_acf = get_field('primary_image');
$img_acf_size = 'full';
$img_acf_src = wp_get_attachment_image_src( $img_acf, $img_acf_size );
$img_acf_caption = get_the_excerpt( $img_acf );
And then:
<?php echo $img_acf_caption; ?>
And because we love ACF so much we can give it some logic:
<img src="<?php echo esc_url( $img_acf_src[0] ); ?>">
<?php if( $img_acf_caption ){ ?>
<div><?php echo $img_acf_caption; ?></div>
<?php } ?>
Something like this should do what you need:
<?php
$images = get_field('section_gallery');
if( $images ): ?>
<?php foreach( $images as $image ): ?>
<div>
<a data-fancybox="gallery" href="<?php echo $image['sizes']['large']; ?>">
<img src="<?php echo $image['sizes']['medium']; ?>" alt="<?php echo $image['alt']; ?>">
<?php if ($image['caption']) { ?><span><?php echo $image['caption']; ?></span><?php } ?>
</a>
</div>
<?php endforeach; ?>
<?php endif; ?>