skip to Main Content

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 ();?
?>

2

Answers


  1. 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 );
    
    Login or Signup to reply.
  2. 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

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search