get_posts - obține toate articolele după ID-ul autorului
Vreau să obțin toate articolele după ID-ul unui anumit autor (utilizatorul curent). Mai târziu, vreau să selectez primul articol creat de acest utilizator (ASC). Presupun că nu folosesc argumentele corecte în get_posts, nu-i așa? $current_user_posts conține întotdeauna un Array cu toate articolele blogului în multiple Obiecte WP_Post diferite.
global $current_user;
get_currentuserinfo();
$args = array(
'author' => $current_user->ID, // Aș putea folosi și $user_ID, corect?
'orderby' => 'post_date',
'order' => 'ASC'
);
// obține articolele sale 'ASC'
$current_user_posts = get_posts( $args );

Sunt un pic confuz. Dacă vrei să obții doar un element din array-ul de postări, poți face asta în felul următor:
- reset($current_user_posts) - prima postare
- end($current_user_posts) - ultima postare
Dar dacă vrei să obții o singură postare cu funcția get_posts()
, poți folosi argumentul posts_per_page
pentru a limita rezultatele.
$args = array(
'author' => $current_user->ID,
'orderby' => 'post_date',
'order' => 'ASC',
'posts_per_page' => 1
);
Mai multe informații despre parametri poți găsi pe pagina Referința Clasei WP Query (funcția get_posts()
acceptă aceiași parametri ca și WP Query).

argumentele tale $args funcționează bine, dar nu înțeleg primul tău răspuns. Cum să folosesc $current_user_posts. Poți să-mi arăți?

Dacă vrei să afișezi titlul primului post, ar trebui să folosești: echo $current_user_posts[0]['title']
. 'title' este cheia pentru ceea ce ai nevoie din array. Lista completă de chei o poți obține cu print_r(array_keys($current_user_posts))
.
"Cum să-l folosești" depinde de ce vrei să faci cu el.

@kindo, te-a ajutat? Este acesta răspunsul de care aveai nevoie?

$current_user_posts[0]['ID'] nu funcționează. Dar prima soluție cu adăugarea 'numberposts' sau 'posts_per_page' (folosite la fel) funcționează bine. Mulțumesc.

@kindo, Scuze, am uitat că get_posts()
returnează un array de obiecte post. Folosește $current_user_posts[0]->ID

global $current_user; // Accesăm utilizatorul curent
$args = array(
'author' => $current_user->ID, // ID-ul autorului (utilizator curent)
'orderby' => 'post_date', // Sortare după dată postare
'order' => 'ASC', // Ordine crescătoare (cele mai vechi primele)
'posts_per_page' => -1 // fără limită de postări
);
// Obținem postările utilizatorului curent
$current_user_posts = get_posts( $args );
$total = count($current_user_posts); // Număr total de postări
și apoi pur și simplu iterăm prin postările utilizatorului curent

funcționează pe (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>' );
