get_posts - obtiene todas las publicaciones por ID de autor

11

Quiero obtener todas las publicaciones por cierto ID de autor (usuario actual). Más tarde, quiero elegir la primera publicación realizada por este usuario (ASC). Supongo que no uso los argumentos correctos en get_posts, ¿verdad? $ current_user_posts siempre contiene una matriz con todas las publicaciones de blog en varios objetos WP_Post diferentes.

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 );
kindo
fuente
1
get_currentuserinfo () está en desuso desde la versión 4.5.0. Reemplazar con:$current_user = wp_get_current_user();
Christian Lescuyer

Respuestas:

19

Estoy un poco confundido. Si desea obtener solo un elemento de la matriz de publicaciones, puede obtenerlo así:

  • reset ($ current_user_posts) - primera publicación
  • end ($ current_user_posts) - publicación posterior

Pero si desea obtener solo una publicación con la get_posts(), puede usar el posts_per_pageargumento para limitar los resultados.

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

Más información sobre los parámetros que puede obtener en la página de referencia de clase de consulta WP ( get_posts()toma los mismos parámetros que la consulta WP).

Marin Bînzari
fuente
1
tus $ args funcionan bien pero no recibo tu primera respuesta. Cómo usar $ current_user_posts. ¿Podrías mostrarme?
kindo
Si desea imprimir el título del primer mensaje que debe utilizar: echo $current_user_posts[0]['title']. El 'título' es la clave para lo que necesita de la matriz. La lista completa de claves con las que puede obtener print_r(array_keys($current_user_posts)). "Cómo usarlo" depende de lo que quieras hacer con él.
Marin Bînzari
obtener el ID de la primera publicación del autor
kindo
Puede obtener la identificación con: $ current_user_posts [0] ['ID']
Marin Bînzari
@kindo, ¿ayudó? ¿Es esta la respuesta que necesitabas?
Marin Bînzari
6
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);

y solo repite las publicaciones actuales del usuario

kdgilang
fuente
¿También puede explicar qué hace el código anterior además de publicar el código? Será útil, gracias
Bravokeyl
1

su trabajo por (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>' );
sirmagid
fuente