PHP code to display WP author and not logged in user

I’ve been modifying a long abandoned plugin project that provides a Stackoverflow inspired badge system for WordPress. I have upgraded its code so it functions with the new WordPress version.

You can view the entire code here if interested: http://pastebin.com/kCWWLPL2

Read More

I want to add a code to the author.php page to list the author’s awarded badges. So far, I have only managed to display the logged in user’s badges with this working code:

<?php
$user_id = get_current_user_id();
if ($user_id != 0) {
  rhb_list_badges(array('user_ID' => $user_id));
}
?>

I was told to use this code to display the author’s badges:

<?php
$author = get_user_by( 'slug', get_query_var( 'author_name' ) ); 
if ($author->ID > 0) {
  rhb_list_badges(array('user_ID' => $author->ID));
}
?>

But it does not return anything on the page. Why? What am I doing wrong here? How can I alter the working get_current_user_id code example so that it will display the author’s badges and not the logged in user’s one?

Related posts

Leave a Reply

1 comment

  1. You could use this before the Loop on the author.php page.

    <?php
    $curauth = (isset($_GET['author_name'])) ? get_user_by('slug', $author_name) : get_userdata(intval($author));
    rhb_list_badges(array('user_ID'=>$curauth->ID));
    ?>
    

    Taken from the WordPress Codex.