показывать случайное изображение в цикле, если изображение не задано


Я хочу показать случайное изображение из нескольких вариантов в моем цикле, если пользовательское поле не имеет определенного значения или могло бы быть, если бы у него не было миниатюры. В любом случае, он должен выплюнуть одно из случайных изображений. Вместо этого он дает мне их все для каждого поста, который удовлетворяет условию. Как я могу сделать так, чтобы он показывал только один наугад? Спасибо. Вот частичный код:

<?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" ]; 

    }
?>

РЕШЕНО: Мое решение было действительно простым:

$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="">';
Author: amespower, 2014-10-14

1 answers

Мое решение было действительно простым:

$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
Author: amespower, 2014-10-15 14:22:00