get_posts – get all posts by author id

I want to get all posts by certain author id (current user). Later, I want to pick the first post made by this user (ASC).
I guess I do not use the right arguments in get_posts, am I? $current_user_posts
always contains an Array with all blog posts in multiple different WP_Post Objects.

global $current_user;
get_currentuserinfo();                      

$args = array(
    'author'        =>  $current_user->ID, // I could also use $user_ID, right?
    'orderby'       =>  'post_date',
    'order'         =>  'ASC' 
    );

// get his posts 'ASC'
$current_user_posts = get_posts( $args );

Related posts

3 comments

  1. I’m a bit confused. If you want to get onlya element from the posts array you can get it like this:

    • reset($current_user_posts) – first post
    • end($current_user_posts) – lat post

    But if you want to get just one post with the get_posts() you can use the posts_per_page argument to limit the results.

    $args = array(
        'author'        =>  $current_user->ID,
        'orderby'       =>  'post_date',
        'order'         =>  'ASC',
        'posts_per_page' => 1
        );
    

    More info about parameters you can get on WP Query Class Reference page (get_posts() takes same parameters as WP Query).

  2. global $current_user;                     
    
    $args = array(
      'author'        =>  $current_user->ID, 
      'orderby'       =>  'post_date',
      'order'         =>  'ASC',
      'posts_per_page' => -1 // no limit
    );
    
    
    $current_user_posts = get_posts( $args );
    $total = count($current_user_posts);
    

    and just loop the current user posts

  3. its work by (wp4.9.7)

     $user_id = get_current_user_id();
     $args=array(
     'post_type' => 'POSTTYPE',
     'post_status' => 'publish',
     'posts_per_page' => 1,
     'author' => $user_id
      );
    
    $current_user_posts = get_posts( $args );
    $total = count($current_user_posts);
    wp_die( '<pre>' .  $total . '</pre>' );
    

Comments are closed.