with the code below, I manage to get the number of posts per author. How to add a category filter "neuws" to this query. In order to count the number of posts by author in the "neuws" category Thanks for the help
<?php
//pour voir les journees de peches de mebres en ayant deja postees et le nombre de journees
// 1. We define the arguments to define what we want to recover
$args = array (
'post_type' => 'post',
'posts_per_page' => '16',
);
// 2. We run the WP Query
// The Query
$the_query = new WP_Query ($args);
// 3. we display the number of messages and the authors!
// The Loop
if ($the_query-> have_posts()) {
//Set arguments to grab all authors with published peches, and order them by user ID
$authorArgs = array(
'orderby' => 'ID',
'has_published_posts' => array('post',),
);
//Create an array of all authors with peches published
$pecheAuthors = get_users($authorArgs);
//Loop through each peche author
foreach($pecheAuthors as $user){
//Output user post count for peches
echo'<font color="#f00;"><b>';
echo count_user_posts($user->ID, 'post');
echo'</b></font>';
echo ' journees de pêches pour ';
//Output user's display name
echo'<font color="#f00;"><b>';
echo $user->display_name;
echo'</b></font>';
echo '<br />';
}
// 3. We launch the loop to display the articles and the authors!
// The Loop
} else {
// no posts found
}
//wp_reset_postdata ();?
?>
CodePudding user response:
You can use the get_usernumposts
filter hook. try the below code. code will go in your active theme functions.php file.
function count_author_post_by_category( $count, $userid, $post_type, $public_only ){
$author_posts = new WP_Query(array(
'author' => $userid,
'posts_per_page' => -1,
'tax_query' => array(
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => 'neuws', // your category slug.
)
)
));
if( $author_posts->have_posts() ) {
$count = $author_posts->found_posts;
}
return $count;
}
add_filter( 'get_usernumposts', 'count_author_post_by_category', 10, 4 );
CodePudding user response:
You could do this by creating a custom WP_Query and then counting it. Note: You can replace the static ID of the user with your $userid variable.
$args = array(
'author' => 1,
'cat' => 5,
);
$my_query = new WP_Query( $args );
$my_count = $my_query->post_count;
Alternatively, you can use the category slug or author's nice name (NOT name!) as well:
$args = array(
'author_name' => 'bob',
'category_name' => 'editorial',
};
Thank You, Usman Khalid