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 );
sorte de
la source
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).

Marin Bînzari
la source
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

kdgilang
la source
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>' );
sirmagid
la source