Верстал я на днях один блог и мне понадобилось вывести все картинки, которые относятся к посту. Некоторое время я бороздил просторы интернетов и нашёл решение, которое я после некоторых изменений смог использовать в своих целях. А чтобы не забыть это дело, я оставлю всё это здесь — и заодно поделюсь с читателями блога, у которых возникнет аналогичная проблема.
Сначала в файле, отвечающем за вывод отдельного поста, вытягиваем все ('posts_per_page' => -1
) вложения ('post_type' => 'attachment'
) по идентификатору поста ('post_parent' => get_the_ID()
).
<?php $attachments = get_posts(array( 'post_type' => 'attachment', 'posts_per_page' => -1, 'post_parent' => get_the_ID() )); ?>
Если вложения есть, то выводим их в цикле foreach. С помощью функции wp_get_attachment_image_src вытягиваем по идентификатору вложения ($attachment->ID
) URL картинки, который скрывается за первым элементом массива ([0]
). Во втором параметре функции передаём желаемый размер картинки (доступно: post-thumbnail, thumbnail, medium или large). Под конец вставляем адрес картинки в соответствующий HTML-элемент и выводим с помощью функции echo.
<?php if($attachments) : foreach($attachments as $attachment) { $img_url = wp_get_attachment_image_src($attachment->ID, 'post-thumbnail')[0]; echo '<img src="'.$img_url.'" class="img-fluid" />'; } endif; ?>
Использовать приведённый код можно в цикле while, в котором выводится пост.
Понравился пост? Поделись в соцсетях и подписывайся на аккаунты в Twitter и Facebook!