get_posts - nhận tất cả các bài viết theo id tác giả


11

Tôi muốn nhận tất cả các bài viết của id tác giả nhất định (người dùng hiện tại). Sau đó, tôi muốn chọn bài đăng đầu tiên được thực hiện bởi người dùng này (ASC). Tôi đoán tôi không sử dụng các đối số đúng trong get_posts, phải không? $ current_user_posts luôn chứa một Mảng với tất cả các bài đăng trên blog trong nhiều Đối tượng WP_Post khác nhau.

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_cienuserinfo () không được dùng nữa kể từ phiên bản 4.5.0. Thay thế bằng:$current_user = wp_get_current_user();
Christian Lescuyer

Câu trả lời:


19

Tôi hơi bối rối. Nếu bạn muốn lấy phần tử onlya từ mảng bài viết, bạn có thể lấy nó như thế này:

  • đặt lại ($ current_user_posts) - bài đăng đầu tiên
  • kết thúc ($ current_user_posts) - bài đăng muộn

Nhưng nếu bạn muốn nhận được chỉ một bài đăng với get_posts()bạn có thể sử dụng posts_per_pageđối số để giới hạn kết quả.

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

Thông tin thêm về các tham số bạn có thể nhận được trên trang Tham khảo Lớp truy vấn WP ( get_posts()có cùng tham số với Truy vấn WP).


1
$ args của bạn hoạt động tốt nhưng tôi không nhận được câu trả lời đầu tiên của bạn. Cách sử dụng $ current_user_posts. Bạn có thể chỉ cho tôi?
kindo

Nếu bạn muốn in tiêu đề của bài viết đầu tiên, bạn nên sử dụng : echo $current_user_posts[0]['title']. 'Tiêu đề' là chìa khóa cho những gì bạn cần từ mảng. Danh sách đầy đủ các phím bạn cang có được print_r(array_keys($current_user_posts)). "Cách sử dụng" tùy thuộc vào những gì bạn muốn làm với nó.
Marin Bînzari

lấy id bài đăng đầu tiên của tác giả
kindo

Bạn có thể nhận id với: $ current_user_posts [0] ['ID']
Marin Bînzari

@kindo, nó có giúp được không? Đây có phải là câu trả lời bạn cần?
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);

và chỉ cần lặp các bài viết của người dùng hiện tại


Bạn cũng có thể giải thích những gì mã trên làm việc để đăng mã, nó sẽ hữu ích, cảm ơn
bravokeyl

1

công việc của nó bằng (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>' );
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.