get_posts - récupère tous les articles par identifiant d'auteur


11

Je veux obtenir tous les messages par certain identifiant d'auteur (utilisateur actuel). Plus tard, je veux choisir le premier message fait par cet utilisateur (ASC). Je suppose que je n'utilise pas les bons arguments dans get_posts, n'est-ce pas? $ current_user_posts contient toujours un tableau avec tous les articles de blog dans plusieurs objets WP_Post différents.

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 obsolète depuis la version 4.5.0. Remplacer par:$current_user = wp_get_current_user();
Christian Lescuyer

Réponses:


19

Je suis un peu confus. Si vous ne voulez obtenir qu'un élément du tableau des publications, vous pouvez l'obtenir comme ceci:

  • reset ($ current_user_posts) - premier post
  • end ($ current_user_posts) - lat post

Mais si vous souhaitez obtenir un seul message avec le, get_posts()vous pouvez utiliser l' posts_per_pageargument pour limiter les résultats.

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

Plus d'informations sur les paramètres que vous pouvez obtenir sur la page de référence de classe de requête WP ( get_posts()prend les mêmes paramètres que WP Query).


1
vos $ args fonctionnent bien mais je n'ai pas votre première réponse. Comment utiliser $ current_user_posts. Pourrais-tu me montrer?
kindo

Si vous voulez imprimer le titre du premier message , vous devez utiliser: echo $current_user_posts[0]['title']. Le «titre» est la clé de ce dont vous avez besoin du tableau. La liste complète des clés que vous pouvez utiliser print_r(array_keys($current_user_posts)). "Comment utiliser" cela dépend de ce que vous voulez en faire.
Marin Bînzari

obtenir l'identifiant du premier post de l'auteur
kindo

Vous pouvez obtenir l'identifiant avec: $ current_user_posts [0] ['ID']
Marin Bînzari

@kindo, cela a-t-il aidé? Est-ce la réponse dont vous aviez besoin?
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);

et il suffit de boucler les messages utilisateur actuels


Pouvez-vous également expliquer ce que fait le code ci-dessus en plus de la publication du code, il sera utile, merci
bravokeyl

1

son travail par (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>' );
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.