Lấy ID của loại bài đăng tùy chỉnh


7

Tôi đã thực hiện một bài đăng tùy chỉnh 'nghiên cứu trường hợp' có một số bài đăng.

Tôi muốn lấy ID của từng bài đăng này để thao tác dữ liệu, nhưng mặc dù nhìn vào các chủ đề tương tự, tôi không thể ghép lại một cách để đạt được điều này. Cái gì đó như;

foreach post oftype custom, get the id

Tôi đang tạo một chức năng để hiển thị thông tin này ở phần cuối, đây là đoạn trích dưới đây.

function display_meta_box( $case_study ) 
{
    if (in_array('case_studies', get_post_types()))
    {
        ...get the IDs of all posts of type 'case_studies'...
    }
    ...do other stuff with IDs...
}

Câu trả lời:


8

Tìm thấy cơ sở của câu trả lời bị chôn vùi trong bộ luật

$args = array( 'post_type' => 'case_studies');

$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
    the_ID();
endwhile;

2
Bạn không cần echovới the_title()và bạn cũng có thể sử dụng the_ID()thay vì echo get_the_id().
bạch dương

'cơ sở' - chỉ hiển thị như một ví dụ
myol

1
Lưu ý sự khác biệt giữa các chức năng the_*vs. get_the_*Trong hầu hết các trường hợp nó giống như echovs return.
bạch dương

Thật thú vị, đối với trường hợp của tôi, tôi cần sử dụng get_the_ * để thao tác thông tin trong vòng lặp while.
myol

5
được đặt fieldsthành idstrong truy vấn của bạn và bạn sẽ chỉ nhận lại được một mảng ID và sẽ sử dụng ít bộ nhớ hơn đáng kể. bạn cũng có thể muốn thiết lập posts_per_pageđể -1nhận được tất cả bài viết của mình.
Milo

8

Bạn có thể nhận được một mảng ID CPT đơn giản bằng cách sử dụng get_postsvới fieldstham số.

$all_post_ids = get_posts(array(
    'fields'          => 'ids',
    'posts_per_page'  => -1,
    'post_type' => 'case_studies'
));
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.