web-dev-qa-db-fra.com

Plugin ACF - Image aléatoire de la galerie avec wp_get_attachment_image ()

J'en ai trouvé d'autres ( source 1 , source 2 , source 3 ) en utilisant le code suivant pour afficher une image de galerie aléatoire (et cela fonctionne) avec le plugin ACF :

<?php
$gallery = get_field('images');
$Rand = array_Rand($gallery, 1);

if( $gallery ): ?>
    <img src="<?php echo $gallery[$Rand]['sizes']['large']; ?>" alt="<?php echo $gallery[$Rand]['alt']; ?>" />
<?php endif; ?>

Mais j’essaie de le faire avec wp_get_attachment_image() (pour les images responsive) mais je ne sais pas comment faire fonctionner la variable $Rand? Le Documentation ACF pour le champ Galerie a un exemple de "liste de base d'images" qui utilise wp_get_attachment_image() mais je n'ai pas besoin de parcourir la galerie en boucle.

Toute aide serait grandement appréciée. Je pense que cela doit ressembler à ceci, avec la variable $Rand ajoutée quelque part:

<?php 
    $images = get_field('gallery');
    $size = 'full'; // (thumbnail, medium, large, full or custom size)
    $Rand = array_Rand($images, 1);

    if( $images ): ?>
            <?php echo wp_get_attachment_image( $images['ID'], $size ); ?>
<?php endif; ?>
1
codeview

Réponse trouvée via Forums ACF . L'ajout du paramètre false renvoie une valeur brute/non formatée.

<?php 
    $images = get_field('gallery', 'option', false); // Adding the `false` parameter returns raw/unformatted value
    $size = 'full'; // (thumbnail, medium, large, full or custom size)
    $Rand = array_Rand($images, 1);

    if( $images ): ?>
        <?php echo wp_get_attachment_image( $images[$Rand], $size ); ?>
<?php endif; ?>
1
codeview
<?php 
    $images = get_field('gallery');
    $size = 'full'; // (thumbnail, medium, large, full or custom size)
    $Rand = array_Rand($images, 1);

    if( $images ): ?>
            <?php echo wp_get_attachment_image( $images[$Rand]['ID'], $size ); ?>
<?php endif; ?>

Ce code devrait fonctionner. array_Rand() return key si second paramètre défini sur 1 ou tableau avec clés si second paramètre> 1

2
Maxim Sarandi