get_posts - obtener todas las entradas por ID de autor
Quiero obtener todas las entradas de un determinado ID de autor (usuario actual). Posteriormente, quiero seleccionar la primera entrada realizada por este usuario (ASC). ¿Estoy usando los argumentos correctos en get_posts? $current_user_posts siempre contiene un Array con todas las entradas del blog en múltiples objetos WP_Post diferentes.
global $current_user;
get_currentuserinfo();
$args = array(
'author' => $current_user->ID, // También podría usar $user_ID, ¿verdad?
'orderby' => 'post_date',
'order' => 'ASC'
);
// obtener sus entradas en orden 'ASC'
$current_user_posts = get_posts( $args );

Estoy un poco confundido. Si quieres obtener solo un elemento del array de posts, puedes hacerlo así:
- reset($current_user_posts) - primer post
- end($current_user_posts) - último post
Pero si quieres obtener solo un post con get_posts()
puedes usar el argumento posts_per_page
para limitar los resultados.
$args = array(
'author' => $current_user->ID,
'orderby' => 'post_date',
'order' => 'ASC',
'posts_per_page' => 1
);
Puedes obtener más información sobre los parámetros en la página de Referencia de la Clase WP Query (get_posts()
acepta los mismos parámetros que WP Query).

tus $args funcionan bien pero no entiendo tu primera respuesta. ¿Cómo usar $current_user_posts? ¿Podrías mostrarme?

Si quieres imprimir el título del primer post deberías usar: echo $current_user_posts[0]['title']
. 'title' es la clave para lo que necesitas del array. La lista completa de claves la puedes obtener con print_r(array_keys($current_user_posts))
.
"Cómo usarlo" depende de lo que quieras hacer con él.

$current_user_posts[0]['ID'] no funciona. Pero la primera solución con agregar 'numberposts' o 'posts_per_page' (ambos se usan igual) funciona bien. Gracias.

@kindo, Lo siento, olvidé que get_posts()
devuelve un array de objetos de posts. Usa $current_user_posts[0]->ID

global $current_user;
$args = array(
'author' => $current_user->ID,
'orderby' => 'post_date',
'order' => 'ASC',
'posts_per_page' => -1 // sin límite
);
$current_user_posts = get_posts( $args );
$total = count($current_user_posts);
y simplemente recorre los posts del usuario actual

funciona con (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>' );
