In Wordpress, how do I display a single random post of a custom post type in a sidebar widget?

Cynthia picture Cynthia · Jul 22, 2012 · Viewed 11.8k times · Source

I have created a custom post type - Testimonials - for a WP site I am working on. I want to display a single random testimonial in my sidebar - without using a plugin if possible. Do I need to create a text widget with the proper post query? If so, what would it look like?

Many thanks,

Cynthia

Answer

The Alpha picture The Alpha · Jul 22, 2012

If you want you can directly paste following code snippet in your sidebar.php where you want to show the Testimonials (make sure whether it's testimonials/Testimonials)

<?php
  $args = array(
    'post_type'=>'testimonials', 
    'orderby'=>'rand', 
    'posts_per_page'=>'1'
  );

  $testimonials=new WP_Query($args);

  while ($testimonials->have_posts()) : $testimonials->the_post(); 
?>
    <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
    <p><?php the_excerpt(); // or the_content(); ?></p>
<?php 
  endwhile;
  wp_reset_postdata();
?>