NotOneBit Blog

Get started today on your next web project with NotOneBit
We've been doing web development before you were born *

Two WordPress Plugins To Improve Your User Management Page (Part 2)

In the second part of this post I’ll show you how you can add a column that lists the total number of pages for a user with a break out of the drafts, pending private, and published. Each element is linked to the respective list of pages. Note that this modification removes the Posts column from the user page, however if you wish to retain it, remove the first five lines (the notonebit_modify_user_columns and the associated add_filter call).

wp-users

The following code would be added to your theme’s functions.php file.

/**
* Mod to add a pages column with detail to the users page. Also removes the posts column 
*/
add_filter('manage_users_columns', 'notonebit_modify_user_columns');
function notonebit_modify_user_columns( $cols ) {
 unset($cols['posts']);
 return array_merge( $cols, array( 'num_posts' => 'Pages' ) );
}
function notonebit_count_user_posts_by_type_and_status( $userid, $post_status, $post_type = "post" ) {
 global $wpdb;
 $where = "WHERE post_author = " . $userid . " AND post_type = '" . $post_type . "' AND (post_status = '" . $post_status . "')";
 $count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts $where" );
 return $count;
}
add_action('manage_users_custom_column', 'notonebit_user_posts_count_column_content', 10, 3);
function notonebit_user_posts_count_column_content($output, $column_name, $user_id) {
 $user = get_userdata( $user_id );
 if ( 'num_posts' == $column_name ) {
 $drafts = notonebit_count_user_posts_by_type_and_status( $user_id, 'draft', 'page' );
 $published = notonebit_count_user_posts_by_type_and_status( $user_id, 'publish', 'page' );
 $pending = notonebit_count_user_posts_by_type_and_status( $user_id, 'pending', 'page' );
 $private = notonebit_count_user_posts_by_type_and_status( $user_id, 'private', 'page' );
 $all = $drafts + $published + $pending + $private;
 return 'All: <a href="/wp-admin/edit.php?author='.$user_id.'&amp;post_type=page">'.$all.'</a>
 <br />Draft: <a href="/wp-admin/edit.php?post_status=draft&amp;post_type=page&amp;author='.$user_id.'">'.$drafts.'</a>
 Pending: <a href="/wp-admin/edit.php?post_status=pending&amp;post_type=page&amp;author='.$user_id.'">'.$pending.'</a>
 Published: <a href="/wp-admin/edit.php?post_status=publish&amp;post_type=page&amp;author='.$user_id.'">'.$published.'</a>
 Private: <a href="/wp-admin/edit.php?post_status=private&amp;post_type=page&amp;author='.$user_id.'">'.$private.'</a>';
 }
}

One thought on “Two WordPress Plugins To Improve Your User Management Page (Part 2)

  1. Hello Admin, thank you so much for your great solutions and all of your hard work. But I am in serious need of your help! I am using your awesome jQuery Infinite Carousel that you developed a few years ago and it works beautifully!!! No problems at all. However, I am now trying to load the carousel dynamically within a SharePoint 2010 team site. I have the dynamic content loading to the page with no problems. I also have the carousel (ul id=”carousel”) working properly when I “hard code” the list (LI) items as originally designed. But when I load my dynamic content (ul id=”sampleUL”) into the carousel, I get a blank canvas (the actual height of carousel) but with no content. :( Please help me figure this out! Please. :)

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: