get_posts - yazar id tarafından gönderilen tüm mesajları bul


11

Tüm gönderileri belirli yazar kimliğiyle (geçerli kullanıcı) almak istiyorum. Daha sonra, bu kullanıcı tarafından yapılan ilk gönderiyi (ASC) seçmek istiyorum. Ben get_posts doğru argümanlar kullanmıyorum, değil mi? $ current_user_posts her zaman birden çok farklı WP_Post Nesnesindeki tüm blog yayınlarının bulunduğu bir Dizi içerir.

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 (), 4.5.0 sürümünden beri kullanımdan kaldırıldı. $current_user = wp_get_current_user();
Şununla

Yanıtlar:


19

Biraz kafam karıştı. Eğer mesaj dizisinden onlya elemanını almak istiyorsanız bunu şu şekilde alabilirsiniz:

  • sıfırla ($ current_user_posts) - ilk gönderi
  • end ($ current_user_posts) - son gönderi

Ancak yalnızca bir gönderi almak istiyorsanız , sonuçları sınırlamak için argümanı get_posts()kullanabilirsiniz posts_per_page.

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

WP Sorgu Sınıfı Referans sayfasında alabileceğiniz parametreler hakkında daha fazla bilgi ( get_posts()WP Sorgusu ile aynı parametreleri alır).


1
$ args iyi çalışıyor ama ilk cevabınızı alamıyorum. $ Current_user_posts nasıl kullanılır. Bana gösterebilir misin?
kindo

İlk yazının başlığını yazdırmak istiyorsanız kullanmalısınız: echo $current_user_posts[0]['title']. 'Başlık' diziden gerekenler için anahtardır. Yakalayabileceğiniz tuşların tam listesi print_r(array_keys($current_user_posts)). "Nasıl kullanılır", onunla ne yapmak istediğinize bağlıdır.
Marin Bînzari

yazarın ilk mesajını al
kindo

Kimliği
numarayla

@kindo, yardımcı oldu mu? Bu ihtiyacınız olan cevap mı?
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);

ve sadece geçerli kullanıcı yayınlarını döngüye sokun


Yukarıdaki kodun kodun eklenmesine ek olarak ne yaptığını da açıklayabilir misiniz, teşekkürler
bravokeyl

1

çalışması (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>' );
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.