WordPress: как вывести все картинки поста (страницы)
Опубликовано: 02.11.2017
Часто бывает необходимо получить 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 картинок. Далее можно сверстать страницу по своему вкусу.
Сегодня | Завтра | ||
USD | 32.62 | 32.50 | |
EUR | 39.90 | 39.92 |
Обменник | Переходов |
Wmchanger | 6 |
E-Market | 5 |
WMtoCash.com | 4 |
Str-Money | 3 |
Hot-Change | 3 |
Вы можете получить WMR-бонус в размере 0,01-0,10 WMR на свой кошелек 1 раз в сутки | |
Кошелек
|
|
Код
|
|
Обмен Webmoney |