Есть ли способ получить массив почтовых идентификаторов, запрошенных из следующего:
$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();
Следовать за:
Я использовал wp_list_pluck
для получения массива почтовых идентификаторов:
$post_ids = wp_list_pluck( $latest->posts, 'ID' );
Затем преобразовал массив в строку с помощью функции implode:
$post_ids_string = implode( ',', $post_ids );
Извините за неоднозначный вопрос.
wp-query
query-posts
Богатый
источник
источник
wp_reset_postdata
должны быть внутри, а не вне оператора if, иначе вы можете сбросить данные поста, если они не были измененыОтветы:
Пытаться
Читать
wp_list_pluck
источник
Используйте
fields
аргумент в своем запросе.источник
Использование решения из @ s-ha-dum экономично, если вам нужно только получить идентификаторы, и у вас не установлен предыдущий объект запроса.
Вот почему:
Потому что в случае, если вы укажете только
'fields' => 'ids'
ничего, вы получите взамен идентификаторы.Если вы пойдете с
'fields' => 'id=>parent'
(выглядит очень смешно), вы получите также родительские удостоверения личности.Любой другой способ использования
'fields'
аргументов не будет иметь никакого влияния с WordPress v4.7.Но в случае, если у вас есть запрос, как в примере
wp_list_pluck
, сделает работу.источник