Làm cách nào để có được bài đăng của nhiều ID bài viết?


21

Tôi đã có một chuỗi với ID bài viết : 43,23,65.
Tôi đã hy vọng tôi có thể sử dụng get_posts()và sử dụng chuỗi với ID làm đối số.

Nhưng tôi không thể tìm thấy bất kỳ chức năng nào để truy xuất nhiều bài viết bằng ID.

Tôi có thực sự phải làm một WP_query?

Tôi cũng đã thấy ai đó đề cập đến bằng cách sử dụng tag_in- nhưng tôi không thể tìm thấy bất kỳ tài liệu nào về việc này.


bạn đã thử sử dụng đối số 'bao gồm' của get_posts() codex.wordpress.org/Template_Tags/get_posts chưa?
Michael

Câu trả lời:


37

Bạn có thể sử dụng get_posts()vì nó có cùng các đối số như WP_Query.

Để vượt qua nó ID, sử dụng 'post__in' => array(43,23,65)(chỉ mất mảng).

Cái gì đó như:

$args = array(
    'post__in' => array(43,23,65)
);

$posts = get_posts($args);

foreach ($posts as $p) :
    //post!
endforeach;

Tôi cũng sẽ thiết lập post_typeposts_per_pagechỉ cho các biện pháp tốt.


Điều này không hoạt động.
Cơn thịnh nộ bất đồng

Không? Bạn đang vượt qua nó như là một mảng? Sử dụng hai dấu gạch dưới (post__in so với post_in)? Vượt qua một post_type?
CookiesForDevo

1
Nếu bạn đang nhận được một loại bài đăng tùy chỉnh, hãy sử dụng post_typeđối số và nếu bạn muốn có hơn 5 kết quả, hãy thêm 'nopaging' => truetùy chọn. Nếu bạn có một chuỗi được phân tách bằng dấu phẩy thay vì một mảng, hãy sử dụng explode(',',$input);để chuyển đổi thành mảng.
ejazz

1
Nếu bạn muốn giữ thứ tự các bài đăng theo cách chúng được thông qua array, hãy đảm bảo thêm 'order_by' => 'post__in'vào bài viết của bạn $args.
rob_st

coi chừng sử dụng post_typetham số. Trong trường hợp post, hàm sẽ trả về TẤT CẢ các loại nội dung, bao gồm cả các loại nội dung tùy chỉnh của bạn, không chỉ post.
Hợp nhất

3

Nếu bạn không thể làm cho những điều trên hoạt động, hãy đảm bảo bạn thêm post_type:

$args = array(
    'post_type' => 'pt_case_study',
    'post__in' => array(2417, 2112, 784)
);

$posts = get_posts($args);
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.