Random element in get_post_meta array

User Generated

ggzg

Programming

Description


Hi

I have a custom field that contains a list of comma separated colors.

I want to randomly select one of those colors.

If get_post_meta returns an array I thought I could randomly pick from that array.

If I try to echo $rand_color_value it just gives me the whole array

How can I randomly select one color from the list in the custom field.

        $agrs = array(

        'post_type' => 'page',

        'tag' => 'colors'

        );

        $colorLoop = new WP_Query($agrs);

        if($colorLoop->have_posts()):

        while($colorLoop->have_posts()):

        $colorLoop->the_post();

        $theColor = get_post_meta($post->ID, 'colors', false);

        /*random color*/

        $rand_color = array_rand($theColor,1);

        $rand_color_value = $theWeight[$rand_color];

        echo $rand_color_value; 

        ?>

        <?php endwhile; endif;?>

        <?php wp_reset_postdata; ?>


User generated content is uploaded by users for the purposes of learning and should be used following Studypool's honor code & terms of service.

Explanation & Answer

OK this is easy. First we parse the string to array. Then we random gerenate a number. Then we use index to choose the position in the array.

$array = explode(",", $yourDatabaseString);
$size = count($array);
$rand = rand(0, $size-1);
$result = $array[$rand];


Anonymous
Awesome! Perfect study aid.

Studypool
4.7
Trustpilot
4.5
Sitejabber
4.4

Related Tags