web-dev-qa-db-fra.com

afficher une image aléatoire en boucle si l'image n'est pas définie

Je souhaite afficher une image aléatoire parmi quelques options de ma boucle si un champ personnalisé n'a pas une certaine valeur ou peut-être s'il ne contient pas de vignette. Dans tous les cas, il devrait cracher une des images aléatoires. Au lieu de cela, il me les donne tous pour chaque poste qui satisfait à la condition. Comment puis-je faire en montrer un seul au hasard? Merci. Voici le code partiel:

<?php

    $loop = new WP_Query( $args );
    while ( $loop->have_posts() ) : $loop->the_post();
    ?>

    <?php $image = get_post_meta($post->ID, 'myimage', true); ?>

    <?php if ($image != 'myimage.jpeg'){
        $upload_dir = wp_upload_dir();
        echo '<img class="myclass" src="'.$upload_dir['url'].'/'.$image.'" alt="">';
    } else { 
    ?>

    <?php 
    for ($i = 1; $i < 4; $i++) { ?>
    <?php echo 'defaultImage'.$i .'.jpeg';

    } ?>

    <?php

    $settings = get_option( "defaultImage" ); 
    $random = Rand( 1, 4 );

    if ( isset( $settings[ "defaultImg$random" ] ) )
    echo $settings[ "defaultImg$random" ]; 

    }
?>

RESOLU: Ma solution était vraiment simple:

$input = array("defaultImage1.jpeg", "defaultImage2.jpeg", "defaultImage3.jpeg", "defaultImage4.jpeg", "defaultImage5.jpeg", "defaultImage6.jpeg");
$upload_dir = wp_upload_dir();
$Rand_keys = array_Rand($input, 2);
echo '<img class="story-carousel" src="'.$upload_dir['url'].'/'.$input[$Rand_keys[0]].'" alt="">';
1
amespower

Ma solution était vraiment simple:

$input = array("defaultImage1.jpeg", "defaultImage2.jpeg", "defaultImage3.jpeg", "defaultImage4.jpeg", "defaultImage5.jpeg", "defaultImage6.jpeg");
$Rand_keys = array_Rand($input, 2);
echo '<img class="story-carousel" src="'.$upload_dir['url'].'/'.$input[$Rand_keys[0]].'" alt="">';
0
amespower