great idea, which version are you using? I am on :1.8.6.5
in my UserList.class.php on line 944 it looks like this:
// Hide hidden users
if (// if we have set some users which we want to hide
is_array( $this->hiddenusers ) && ! empty( $this->hiddenusers ) &&
// and the current user is one of them
( in_array( $user->user_login, $this->hiddenusers ) || in_array( $user->user_id, $this->hiddenusers ) )) {
// do not add this user
$add = false;
}
// real user
where do i put this line of code?
Thanks Mwalima
@mwalima,
It is a great idea indeed, to me became a need.
Looks like I got the line# wrong. At that same file look instead for the function get_user_postcount( $user_id ) and then replace the code there for this one:
/**
* Returns the postcount for a given user.
* On WPMU sites posts are counted from all blogs in field $blogs and summed up.
*
* @param int $user_id
*
* @return int post count
*/
function get_user_postcount( $user_id ) {
$total = 0;
if ( AA_is_wpmu() && ! empty( $this->blogs ) ) {
$blogs = $this->blogs;
// all blogs -> only search the user's blogs
if ( in_array( '-1', (array) $this->blogs ) ) {
$blogs = (array) $this->get_user_blogs( $user_id );
}
foreach ( $blogs as $blog_id ) {
switch_to_blog( $blog_id );
$total += count_user_posts( $user_id );
}
// reset to current blog done out side to save lot of switching
restore_current_blog();
} else {
// -------------------------------------------------------------------- Change added to consider mycpt post type ------------------------------------------
// This is a hardcode to the plugin to make it lookup for 'mycpt' post type and return the count.
global $wpdb;
$count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts WHERE post_author = $user_id AND post_type IN ('mycpt') and post_status = 'publish'" );
// $where = get_posts_by_author_sql( 'mycpt', true, $userid );
// $count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts $where" );
$regposts += count_user_posts($user_id);
$total = $regposts + $count;
// ------------------------------------------------------------------- End of change -------------------------------------------------------------------
}
return $total;
}
Replace mycpt for whatever post type you want to consider to be counted.
Remember that on next update you’ll loose this change.
I’m glad someone agreed about this being a great idea, maybe the plugin author want to implement custom post types count for the next release.
Hi guys
YOU DON’T NEED TO CHANGE THE CODE I HAVE A FILTER THAT YOU CAN CALL.
/*
* @since 1.8.6.5
*
* @param int $total_post The user's post count
* @param int $user_id of the user post being counted.
*/
return apply_filters( 'aa_get_user_postcount', $total, $user_id );
This allows you change the total returned by this function
Here is some untested code put it in your functions.php file or wherever makes sense for you
add_filter('aa_get_user_postcount', 'add_custom_post_count');
function add_custom_post_count( $count, $user_id ){
global $wpdb;
// do custom query to get a post count
$cpt_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts WHERE post_author = $user_id AND post_type IN ('mycpt') and post_status = 'publish'" );
return $count + $cpt_count;
// OR if you wish to replace the count
// return $cpt_count;
}
I don`t know why but your code it does not working.
I have CPT called “blog” and my count is still 0.
Any ideas?
you will need to debug this call
$wpdb->get_var( “SELECT COUNT(*) FROM $wpdb->posts WHERE post_author = $user_id AND post_type IN (‘blog’) and post_status = ‘publish'” )
did you change the post type from CPT to block as above
I think there are missing arguments at add_filter call.
To me it works adding priority and accepted arguments:
add_filter('aa_get_user_postcount', 'add_custom_post_count', 10, 2);
Thanks @miguelcortereal
My bad as I said untested
Paul