Получение изображений, прикрепленных к записи
Я хочу использовать изображения из медиатеки в jQuery слайдере на главной странице, чтобы другие пользователи могли легко обновлять картинки без изменения кода. Я прикрепил несколько фото к записи и попробовал такой код:
<?php
$image_query = new WP_Query(array('name'=>'slider-images'));
while ( $image_query->have_posts() ) : $image_query->the_post();
$args = array( 'post_type' => 'attachment', 'numberposts' => -1, 'post_status' => null, 'post_parent' => $post->ID );
$attachments = get_posts($args);
if ($attachments) {
foreach ( $attachments as $attachment ) {
echo '<li>';
echo '<img src="'.wp_get_attachment_url($attachment->ID).'" />';
echo '</li>';
}
}
endwhile;
wp_reset_postdata();
?>
Но ничего не отображается. Есть ли ошибка в моем коде или существует более простой/лучший способ группировки изображений, кроме как прикреплять их к записи?
РЕДАКТИРОВАНИЕ: Если я использую the_content() в цикле $image_query, изображения выводятся так:
<p>
<a href="...">
<img src="..." />
</a>
</p>
Но мне нужно получить такой формат:
<li>
<a href="...">
<img src="..." />
</a>
</li>

Лучше использовать get_children вместо get_posts. Вот краткий пример, который будет работать. Это функция, которую можно определить в вашем плагине или в файле functions.php, а затем использовать её как шаблонный тег.
/**
* Получает все изображения, прикрепленные к записи
* @return string
*/
function wpse_get_images() {
global $post;
$id = intval( $post->ID );
$size = 'medium';
$attachments = get_children( array(
'post_parent' => $id,
'post_status' => 'inherit',
'post_type' => 'attachment',
'post_mime_type' => 'image',
'order' => 'ASC',
'orderby' => 'menu_order'
) );
if ( empty( $attachments ) )
return '';
$output = "\n";
/**
* Цикл по каждому вложению
*/
foreach ( $attachments as $id => $attachment ) :
$title = esc_html( $attachment->post_title, 1 );
$img = wp_get_attachment_image_src( $id, $size );
$output .= '<a class="selector thumb" href="' . esc_url( wp_get_attachment_url( $id ) ) . '" title="' . esc_attr( $title ) . '">';
$output .= '<img class="aligncenter" src="' . esc_url( $img[0] ) . '" alt="' . esc_attr( $title ) . '" title="' . esc_attr( $title ) . '" />';
$output .= '</a>';
endforeach;
return $output;
}

нужно ли вызывать эту функцию в моем цикле $image_query? Я пробовал, но она просто выводит пустую строку
