get_posts - ottieni tutti i post per ID autore

12 ago 2013, 02:24:11
Visualizzazioni: 132K
Voti: 15

Voglio ottenere tutti i post di un determinato ID autore (utente corrente). Successivamente, voglio selezionare il primo post creato da questo utente (ASC). Penso di non usare gli argomenti corretti in get_posts, è così? $current_user_posts contiene sempre un Array con tutti i post del blog in diversi oggetti WP_Post.

global $current_user;
get_currentuserinfo();                      

$args = array(
    'author'        =>  $current_user->ID, // Potrei anche usare $user_ID, giusto?
    'orderby'       =>  'post_date',
    'order'         =>  'ASC' 
    );

// ottieni i suoi post in ordine 'ASC'
$current_user_posts = get_posts( $args );
1
Commenti

get_currentuserinfo() è deprecato dalla versione 4.5.0. Sostituire con: $current_user = wp_get_current_user();

Christian Lescuyer Christian Lescuyer
15 mag 2017 11:43:27
Tutte le risposte alla domanda 3
8
27

Sono un po' confuso. Se vuoi ottenere solo un elemento dall'array dei post puoi farlo così:

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

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

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

Maggiori informazioni sui parametri puoi trovarle nella pagina WP Query Class Reference (get_posts() accetta gli stessi parametri di WP Query).

12 ago 2013 10:22:39
Commenti

i tuoi $args funzionano bene ma non capisco la tua prima risposta. Come usare $current_user_posts. Potresti mostrarmelo?

kindo kindo
12 ago 2013 10:59:48

Se vuoi stampare il titolo del primo post dovresti usare: echo $current_user_posts[0]['title']. Il 'title' è la chiave per ciò che ti serve dall'array. La lista completa delle chiavi puoi ottenerla con print_r(array_keys($current_user_posts)).

"Come usarlo" dipende da cosa vuoi farci.

Marin Bînzari Marin Bînzari
12 ago 2013 11:17:18

ottenere l'id del primo post dell'autore

kindo kindo
12 ago 2013 11:28:34

Puoi ottenere l'id con: $current_user_posts[0]['ID']

Marin Bînzari Marin Bînzari
12 ago 2013 11:29:54

@kindo, ti è stato utile? È questa la risposta di cui avevi bisogno?

Marin Bînzari Marin Bînzari
12 ago 2013 12:05:34

$current_user_posts[0]['ID'] non funziona. ma la prima soluzione con l'aggiunta di 'numberposts' o 'posts_per_page' (usati in modo equivalente) funziona bene. grazie

kindo kindo
12 ago 2013 14:14:53

@kindo, Scusa, ho dimenticato che get_posts() restituisce un array di oggetti post. Usa $current_user_posts[0]->ID

Marin Bînzari Marin Bînzari
12 ago 2013 14:29:24

Anche l'ultima soluzione ora funziona.

kindo kindo
12 ago 2013 14:43:19
Mostra i restanti 3 commenti
1
global $current_user;                     

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


$current_user_posts = get_posts( $args );
$total = count($current_user_posts);

e semplicemente cicla i post dell'utente corrente

9 set 2016 06:46:58
Commenti

Puoi anche spiegare cosa fa il codice sopra oltre a pubblicare il codice, sarebbe utile, grazie

bravokeyl bravokeyl
9 set 2016 08:11:19
0

funziona con (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>' );
8 lug 2018 14:13:40