Displaying All Users Information

WordPress provides an archive template that displays all posts, but there is no template that displays a list of all users. Let's say that you are building a business site, and you want to take advantage of the new contact fields you defined above to display a user directory that will automatically reflect any changes your users make to their contact information. To do so, create a new page template containing the code shown in Listing 10-5. This code should be placed more or less where the_content() would usually go; you'll need to add the surrounding markup to match your site's theme.

In this example, you get all user IDs of your blog with the get_users_of_blog() function. Then, to make it easier to loop through them, you go through all the user objects returned by that function and create a simple array. Finally, you loop through the array and display each field in a table cell.

Notice that the object field names for the new contact fields match the short names you used when you created them.

Figure 10-5 shows the resulting directory page.

Listing 10-5. Building a user directory

Template Name: Staff Directory

//get all registered users $blogusers = get_users_of_blog(); foreach ($blogusers as $bloguser) {

//get data about each user as an object $user = get_userdata($bloguser->user_id); // create a flat array with only the fields we need $allusers[$user->ID] = array(

'name' => $user->display_name, 'title' => $user->title, 'phone' => $user->phone, 'twitter' => $user->twitter

<table id="staff-directory" class="sortable"> <thead>

<tr> <th>Name</th> <th>Title</th> <th>Phone</th> <th>Twitter</th> </tr>

<?php foreach ($allusers as $auser) { ?> <tr>

<td><?php echo $auser['name']; ?></td> <td><?php echo $auser['title']; ?></td> <td><?php echo $auser['phone']; ?></td>

<td><a href="http://twitter.com/<?php echo $auser['twitter']; ?>"> @<?php echo $auser['twitter']; ?></a></td>

</tr> <?php } ?> </tbody> </table>

Figure 10-5. The resulting Staff Directory

See sillybean.net/?p=2715 for a more complex version of this user directory, including a method of creating downloadable vCard address book files for each user using microformats.

Twitter And WordPress

Twitter And WordPress

Unleash the power of Twitter and WordPress to multiply your traffic. Discover the tools and tips to maximize your traffic from these two great tools. Increase your blog readers. Use Twitter to know what content your readers are craving. Leverage the power of these tools through automation to save you time.

Get My Free Ebook


Post a comment