get_posts - ottiene tutti i post dall'ID autore


11

Voglio ottenere tutti i post di determinati ID autore (utente corrente). Successivamente, desidero scegliere il primo post scritto da questo utente (ASC). Immagino di non usare gli argomenti giusti in get_posts, vero? $ current_user_posts contiene sempre una matrice con tutti i post del blog in più oggetti WP_Post diversi.

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 () è obsoleto dalla versione 4.5.0. Sostituisci con:$current_user = wp_get_current_user();
Christian Lescuyer,

Risposte:


19

Sono un po 'confuso. Se vuoi ottenere solo un elemento dall'array post puoi ottenerlo in questo modo:

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

Ma se vuoi ottenere solo un post con il get_posts()puoi usare l' posts_per_pageargomento per limitare i risultati.

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

Maggiori informazioni sui parametri che puoi ottenere sulla pagina di riferimento della classe di query WP ( get_posts()accetta gli stessi parametri della query WP).


1
i tuoi $ arg funzionano bene ma non ho la tua prima risposta. Come usare $ current_user_posts. Potresti mostrarmi?
kindo

Se si desidera stampare il titolo del primo post si dovrebbe usare: echo $current_user_posts[0]['title']. Il 'titolo' è la chiave per ciò di cui hai bisogno dall'array. L'elenco completo delle chiavi con cui puoi ottenere print_r(array_keys($current_user_posts)). "Come usare" dipende da cosa vuoi farci.
Marin Bînzari,

ottenere l'ID del primo post dell'autore
kindo,

Puoi ottenere l'id con: $ current_user_posts [0] ['ID']
Marin Bînzari,

@kindo, ti è stato d'aiuto? È questa la risposta di cui avevi bisogno?
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);

e fai semplicemente un ciclo dei post degli utenti correnti


Puoi anche spiegare cosa fa il codice sopra in aggiunta alla pubblicazione del codice, sarà utile, grazie
bravokeyl

1

opera di (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>' );
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.