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

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).


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


¿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>' );
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.