web-dev-qa-db-fra.com

get_posts - Récupère tous les messages de l'auteur

Je veux obtenir tous les messages par certain auteur id (utilisateur actuel). Plus tard, je veux choisir le premier message de 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 toutes les publications 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 );
8
kindo

Je suis un peu confus. Si vous voulez obtenir seulement un élément du tableau posts, 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 poste avec la fonction get_posts(), vous pouvez utiliser l’argument posts_per_page 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 disponibles sur WP Référence de la classe de requête page (get_posts() accepte les mêmes paramètres que WP Query).

15
Marin Bînzari
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 juste en boucle les messages de l'utilisateur actuel

3
kdgilang

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>' );
0
sirmagid