How do I display 1 random article from multiple categories? (3 posts)

  1. MvdL79
    Posted 6 years ago #

    Okay currently I use the following code to display a random article from the category called fish:

    <?php $my_query = new WP_Query("category_name=Feesten&showposts=$artsee_homepage_featured&orderby=rand");
    while ($my_query->have_posts()) : $my_query->the_post();
    $do_not_duplicate = $post->ID; ?>
    <?php $thumb = get_post_meta($post->ID, 'Featured', $single = true); ?>

    Thought this is working fine, I do want to add 2 extra categories where the articles are randomly picked from and not just the category fish.

    E.g. I want it to display 1 (one) random article from one of the following categories: fish, chips and potatoes.

    How can I achieve this? I already tried searching the forum, but without succes. And I also tried some things myself, but I lack the knowledge to do this properly.

    So can anyone help me out here?

    Thanks a million!

  2. Doodlebee
    Posted 6 years ago #

    $my_query = new WP_Query("category_name=Feesten&showposts=$artsee_homepage_featured&orderby=rand");

    what is "$artsee_homepage_featured"? That's a variable. Is that a typo? or is "$artsee_homepage_featured" defined as the "fish" category you're looking for?

    For each category, you'll need a new query:

    $fish = new WP_Query(category_name=fish&showposts=1&order_by=rand');
    if($fish->have_posts()) : while($fish->have_posts()) : $fish->the_post(); ?>
    put in your stuff for the display of the "fish" post
    <?php endwhile; endif; ?>
    $chips = new WP_Query(category_name=chips&showposts=1&order_by=rand');
    if($chips->have_posts()) : while($chips->have_posts()) : $chips->the_post(); ?>
    put in your stuff for the display of the "chips" post
    <?php endwhile; endif; ?>


  3. Spiritual
    Posted 5 years ago #

    actually, the easiest way to do this is to actually copy and paste code directly from wordpress codex. Just go to:


    and the answer is right there:

    <ul><li><h2>A random selection of my writing</h2>
     $rand_posts = get_posts('numberposts=5&orderby=rand');
     foreach( $rand_posts as $post ) :
        <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
     <?php endforeach; ?>

    so basically, do what the guy above says (make multiple ones), but keep changing the name is all. Above code will do 'em all.

Topic Closed

This topic has been closed to new replies.

About this Topic