Apakah ada cara saya dapat mengambil array id pos yang diminta dari yang berikut:
$latest = new WP_Query( array (
'orderby' => 'rand',
'posts_per_page' => 3
));
if ( $latest -> have_posts() ) : while ( $latest -> have_posts() ) : $latest -> the_post();
get_template_part( 'templates/content', 'post' );
endwhile; endif; wp_reset_postdata();
Mengikuti:
Saya dulu wp_list_pluck
mengambil array id pos:
$post_ids = wp_list_pluck( $latest->posts, 'ID' );
Kemudian dikonversi array menjadi string menggunakan fungsi implode:
$post_ids_string = implode( ',', $post_ids );
Maaf atas pertanyaan yang mendua.
wp-query
query-posts
Kaya
sumber
sumber
wp_reset_postdata
harus berada di dalam bukan di luar pernyataan if, jika tidak, Anda dapat mengatur ulang data pos saat belum diubahJawaban:
Mencoba
Baca baca
wp_list_pluck
sumber
Gunakan
fields
argumen dalam kueri Anda.sumber
Menggunakan solusi dari @ s-ha-dum adalah ekonomis jika Anda hanya perlu mendapatkan id, dan Anda tidak memiliki set objek query sebelumnya.
Inilah alasannya:
Karena jika Anda hanya menentukan
'fields' => 'ids'
tidak lebih dari yang akan Anda dapatkan sebagai ganti ID.Jika Anda akan pergi dengan
'fields' => 'id=>parent'
(Terlihat sangat lucu), Anda juga akan mendapatkan ID orang tua.Cara lain menggunakan
'fields'
argumen tidak akan berdampak apa pun pada WordPress v4.7.Tetapi jika Anda memiliki permintaan seperti dalam contoh
wp_list_pluck
akan melakukan pekerjaan.sumber