http://wm-monitoring.ru/ ')) {alert('Спасибо за то что установили нашу кнопку! =)');} else {alert('Очень жаль! =(');}"> http://wm-monitoring.ru/

WordPress: как вывести все картинки поста (страницы)

Опубликовано: 02.11.2017

видео WordPress: как вывести все картинки поста (страницы)

Создание галерей из картинок штатными средствами Wordpress без плагинов

Часто бывает необходимо получить src всех картинок поста или стационарной страницы, например, в виде массива для последующей верстки шаблона. Сделать это можно многими способами. Но тут есть некоторые тонкости.



Первый способ

Для получения и вывода всех изображений, прикрепленных посту, можно воспользоваться функцией get_posts() . В аргументах функции надо задать: post_parent - id поста, картинки которого мы хотим получить, post_type' => 'attachment', 'post_mime_type' => 'image', остальное - по вкусу.

$args = array( 'order' => 'ASC', 'post_type' => 'attachment', 'post_parent' => '26', 'post_mime_type' => 'image', 'post_status' => null, 'numberposts' => -1 ); $attachments = get_posts($args); if ($attachments) { foreach ($attachments as $attachment) { $img_url = wp_get_attachment_image_url($attachment->ID, full); } } wp_reset_postdata();

Не забываем ставить wp_reset_postdata()!


Добавление фотографий и галерей картинок для WordPress (WordPress для начинающих)

Картинки можно вывести, например, в виде галереи prettyPhoto:

<ul class="gallery"> <li>>a title="Фото" href="<?php echo $img_url; ?>" rel="prettyPhoto[gallery1]"><img src="<?php echo $img_url; ?>" alt="Фото" /></a></li> </ul>

Второй способ

Можно использовать функцию get_page_children() - она получает все дочерние элементы, в том числе и рисунки.

$my_wp_query = new WP_Query(); $img_pages = $my_wp_query->query(array('post_type' => 'attachment','post_mime_type' => 'image')); $img_children=get_page_children( $post->ID, $img_pages );

Это вставляется внутрь основного цикла. $post->ID - это id текущего поста в цикле. Если нужны картинки конкретного поста, ставим сюда конкретный ID.

Третий способ

Самый короткий и простой способ - получить изображения с помощью get_attached_media() :

$imgs = get_attached_media( 'image', $post->ID  ); foreach($imgs as $img){ $image_url = $img->guid; echo '<img src="'. $image_url .'" />'; }

Когда это не работает

Если при вставке картинок в пост они не загружались с компьютера, а брались из медиа-библиотеки, все три способа, приведенные выше не сработают, если картинки были уже прикреплены ранее к какому-то другому посту. Но выход есть: нужно получить текст поста в переменную и с помощью регулярного выражения вытащить из него src картинок. Далее можно сверстать страницу по своему вкусу.

Карта
rss