How-To: Create a Leaderboard
-
Creating a leader-board is actually fairly easy. Granted, it’s no short code, but using a custom post template, you can do it. I have created a leaderboard using the following code:
<?php /* Template Name: Roster */ get_header(); ?> <table id="roster"> <tr> <th>Avatar</th> <th>Name</th> <th>Rank</th> <?php if (is_user_logged_in()) { ?> <th>Advancement</th> <th>Email</th> <?php } ?> <th>Member Since</th> </tr> <?php $listUsersID = $wpdb->get_col( $wpdb->prepare( "SELECT $wpdb->users.ID FROM $wpdb->users ORDER BY %s ASC", "konb_user_level, nickname" ) ); foreach ( $listUsersID as $userid ) { $user = get_userdata( $userid ); ?> <tr> <td><?php echo get_avatar($userid, $size = '33'); ?></td> <td><? echo $user->nickname; ?></td> <td><? if ( !empty( $user->roles ) && is_array( $user->roles ) ) { foreach ( $user->roles as $role ) { if (strpos($role, "bbp_") === false) { echo ucfirst(strtolower($role)); } } } ?></td> <td><?php echo dpa_get_user_points( $user->ID ); ?></td> <?php if (is_user_logged_in()) { ?> <td><? echo $user->user_email; ?></td> <?php } ?> <td><? echo $user->user_registered; ?></td> </tr> <?php } ?> </table> <?php comments_template( '', true ); get_sidebar(); get_footer();
This code is saved in the root of my child theme as roster.php. You will be able to use it by creating a normal page in WordPress, then selecting the Roster template. Feel free to modify and customize as needed. I’d show a working example, except our roster page requires the user to be logged in.
Using a custom page template you can fully customize the roster to your liking, where as with a short code, you’d be very dependent on how the layout was done in the plugin.
~Mike
- The topic ‘How-To: Create a Leaderboard’ is closed to new replies.