Czy istnieje sposób na odzyskanie tablicy identyfikatorów postów zapytanych z następujących elementów:
$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();
Zagryźć:
Kiedyś wp_list_pluck
pobierałem tablicę identyfikatorów postów:
$post_ids = wp_list_pluck( $latest->posts, 'ID' );
Następnie przekonwertowano tablicę na ciąg znaków za pomocą funkcji implode:
$post_ids_string = implode( ',', $post_ids );
Przepraszam za dwuznaczne pytanie.
wp-query
query-posts
Bogaty
źródło
źródło
wp_reset_postdata
powinien być w środku nie poza if, w przeciwnym razie możesz przywrócić dane pocztowe, gdy nie została zmienionaOdpowiedzi:
Próbować
Czytać
wp_list_pluck
źródło
Użyj
fields
argumentu w zapytaniu.źródło
Korzystanie z rozwiązania @ s-ha-dum jest ekonomiczne, jeśli potrzebujesz tylko identyfikatorów i nie masz wcześniej ustawionego obiektu zapytania.
Oto dlaczego:
Ponieważ w przypadku, gdy podasz tylko
'fields' => 'ids'
nic więcej, otrzymasz w zamian niż identyfikator.Jeśli zdecydujesz się na
'fields' => 'id=>parent'
(Wygląda naprawdę zabawnie), dostaniesz także identyfikator rodzica.Jakikolwiek inny sposób użycia
'fields'
argumentu nie będzie miał wpływu na WordPress v4.7.Ale jeśli masz zapytanie, tak jak w przykładzie
wp_list_pluck
, wykonasz zadanie.źródło