Вывести URL изображений во вложении поста внутри цикла

Решено

Доброго времени суток!

Подскажите пожалуйста, нужно вывести все изображения внутри цикла.
Использую функцию:


wp_get_attachment_url()

Выглядит так:


<image>

<?php

$id = $post->ID;

$attachment_image = get_children( array(

'numberposts' => -1,

'post_mime_type' => 'image',

'post_parent' => $id,

'post_type' => 'attachment'

) );

$attachment_image = array_shift($attachment_image);

$img = '' . wp_get_attachment_url( $attachment_image->ID ) . '';

echo $img;

?>

</image>

Выводит URL таким образом:


<image>http://site.com/wp-content/uploads/001.jpg</image>

Только первое изображение во вложениях прикрепленных к записи.

Нужно реализовать следующим образом.. все тоже самое, но отобразить все URL внутри цикла так:


<image>http://site.com/wp-content/uploads/001.jpg</image>


<image>http://site.com/wp-content/uploads/002.jpg</image>


<image>http://site.com/wp-content/uploads/003.jpg</image>

Именно в теге <image> отдельно для каждого вложения (изображения).

Спасибо.

Добавить Комментарий
    Ответ
     <ul>
     <?php if ( have_posts() ) : while ( have_posts() ) : the_post();
    $attachments = get_posts( array(
     'post_parent'    => $post->ID,
     'post_type'      => 'attachment',
     'numberposts'    => -1, // show all
     'post_status'    => 'any',
     'post_mime_type' => 'image',
     'orderby'        => 'menu_order',
     'order'           => 'ASC'
     ) );
    if ( $attachments ) {
     foreach ( $attachments as $attachment ) {
     ?>
     <li><?php echo wp_get_attachment_image( $attachment->ID, 'full' ); ?>
     <p><?php echo apply_filters( 'the_title', $attachment->post_title ); ?></p>
     </li>
     <?php
     }
     }
     endwhile; endif; ?>
     </ul>
     

    Внутри цикла получаем посты типа «attachment» с ‘post_parent’    => $post->ID.
    Затем обрабатываем их в цикле.
    Выводятся: картинки + заголовок, надеюсь сможете изменить вывод под себя?
    Будут вопросы — обращайтесь.

    Для выборки можно использовать попроще:

     $attachments = get_posts( array(
     'post_type'   => 'attachment',
     'numberposts' => -1,
     'post_status' => null,
     'post_parent' => $post->ID
     ) );
     

    в 23.02.2016.
    Добавить Комментарий

    Не смог ответить в комментариях.

    Работает

    <ul>
     <?php if ( have_posts() ) : while ( have_posts() ) : the_post();
    $attachments = get_posts( array(
     'post_parent' => $post->ID,
     'post_type' => 'attachment',
     'numberposts' => -1, // show all
     'post_status' => 'any',
     'post_mime_type' => 'image',
     'orderby' => 'menu_order',
     'order' => 'ASC'
     ) );
    if ( $attachments ) {
     foreach ( $attachments as $attachment ) {
     ?>
     <li><?php echo wp_get_attachment_image( $attachment->ID, 'full' ); ?>
     <p><?php echo apply_filters( 'the_title', $attachment->post_title ); ?></p>
     </li>
     <?php
     }
     }
     endwhile; endif; ?>
     </ul>
    

    Но у меня уже есть цикл. Если вставлять вместе два цикла, то при отображении второй, третей и т.д. постов страница не открывается.
    Покажите пожалуйста как это реализовать без 

    if ( have_posts() ) : while ( have_posts() ) : the_post();
    

    Спасибо.

    так просто не писать это))

     if ( have_posts() ) : while ( have_posts() ) : the_post();
     

    и
     endwhile; endif;
     

    — не нужно, если у вас уже есть цикл

    в 23.02.2016.

    А что с комментариями не так?

    в 23.02.2016.
    Добавить Комментарий

    Точно))) Спасибо. Я только 5 дней назад кодекс начал изучать.. еще много чего не знаю)) Хорошо что ваш сайт есть)
    Пишет: «У вас должно быть 200 очков чтобы добавить комментарий». Вам виднее конечно, но лучше сделать 0, чтобы авторы вопросов могли отвечать вам)

    Спасибо, поправил.

    в 23.02.2016.

    И вам спасибо.

    в 23.02.2016.
    Добавить Комментарий

    Ваш ответ

    Размещая свой ответ, вы соглашаетесь с правилами сайта.