get_posts - dapatkan semua posting berdasarkan id penulis

11

Saya ingin mendapatkan semua posting oleh id penulis tertentu (pengguna saat ini). Kemudian, saya ingin memilih posting pertama yang dibuat oleh pengguna ini (ASC). Saya kira saya tidak menggunakan argumen yang benar di get_posts, kan? $ current_user_posts selalu berisi Array dengan semua posting blog di berbagai Objek WP_Post.

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 );
baik
sumber
1
get_currentuserinfo () sudah tidak digunakan lagi sejak versi 4.5.0. Ganti dengan:$current_user = wp_get_current_user();
Christian Lescuyer

Jawaban:

19

Saya sedikit bingung. Jika Anda ingin mendapatkan elemen onlya dari array posting Anda bisa mendapatkannya seperti ini:

  • reset ($ current_user_posts) - posting pertama
  • end ($ current_user_posts) - pos lat

Tetapi jika Anda ingin mendapatkan hanya satu posting dengan get_posts()Anda dapat menggunakan posts_per_pageargumen untuk membatasi hasil.

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

Info lebih lanjut tentang parameter dapat Anda peroleh di halaman Referensi Kelas WP Query ( get_posts()mengambil parameter yang sama dengan WP Query).

Marin Bînzari
sumber
1
$ args Anda berfungsi dengan baik, tetapi saya tidak mendapatkan jawaban pertama Anda. Cara menggunakan $ current_user_posts. Dapatkah anda menunjukkan kepada saya?
kindo
Jika Anda ingin mencetak judul posting pertama Anda harus menggunakan: echo $current_user_posts[0]['title']. 'Judul' adalah kunci untuk apa yang Anda butuhkan dari array. Daftar lengkap kunci yang bisa Anda dapatkan print_r(array_keys($current_user_posts)). "Cara menggunakan" itu tergantung pada apa yang ingin Anda lakukan dengannya.
Marin Bînzari
dapatkan id posting pertama penulis
kindo
Anda bisa mendapatkan id dengan: $ current_user_posts [0] ['ID']
Marin Bînzari
@kindo, apakah itu membantu? Apakah ini jawaban yang Anda butuhkan?
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);

dan hanya loop posting pengguna saat ini

kdgilang
sumber
Dapatkah Anda juga menjelaskan apa kode di atas tidak selain produk posting kode tersebut, akan sangat membantu, terima kasih
bravokeyl
1

ini bekerja dengan (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
sumber