Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

Untitled

By: a guest on Jun 18th, 2013  |  syntax: None  |  size: 1.61 KB  |  views: 113  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
This paste has a previous version, view the difference. Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. /**
  2.  * Display currently earned badges for author.
  3.  * @param  integer $count   How many posts to display per page
  4.  * @param  integer $author_id ID of the author to display. Defaults to ID 1
  5.  * @return mixed           echo'd badge loop.
  6.  */
  7. function custom_badgeos_user_achievements( $count = 1, $author_id = 1 ) {
  8.         //Use the current user if no specific user specified.
  9.         if ( 1 === absint( $author_id ) ) {
  10.                 global $post;
  11.                 $author_id = $post->post_author;
  12.         }
  13.  
  14.         //Re-fetch our data if the transient has expired.
  15.         if ( false === ( $badges = get_transient( 'custom_badgeos_user_achievements' ) ) ) {
  16.                 //Grab the user's current list of achievements, by ID
  17.                 $ids = badgeos_get_user_earned_achievement_ids( $author_id );
  18.  
  19.                 $types = array();
  20.                 foreach( $ids as $id ) :
  21.                         //shuffle the badge type into its own array.
  22.                         $types[] = get_post_type( $id );
  23.                 endforeach;
  24.                 //Assign our arguments based on passed in parameters and unique badge types and only earned badges by ID.
  25.                 $args = array(
  26.                         'posts_per_page' => $count,
  27.                         'post_type' => array_unique($types),
  28.                         'post__in' => $ids
  29.                 );
  30.                 $badges = new WP_Query( $args );
  31.                 //store our resulting WP_Query object in a transient for one hour.
  32.                 set_transient( 'custom_badgeos_user_achievements', $badges, 60*60 );
  33.         }
  34.         //Loop through our badges as we would any other post listing, display the parts we want.
  35.         if( $badges->have_posts() ) : while( $badges->have_posts() ) : $badges->the_post(); ?>
  36.         <?php echo badgeos_get_achievement_post_thumbnail(); ?>
  37.         <span class="badgeos-title-wrap"><?php the_title(); ?></span>
  38.         <?php endwhile; wp_reset_postdata(); endif;
  39. }
clone this paste RAW Paste Data