obtener imágenes adjuntas a una publicación
Quiero tener la capacidad de usar imágenes de la biblioteca multimedia en un slider jQuery en la página de inicio para que sea fácil para otra persona actualizar las imágenes sin tener que codificarlas manualmente. He adjuntado varias fotos a una publicación e intenté esto:
<?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();
?>
pero no muestra nada. ¿Hay algo mal en mi código o existe una forma más fácil/mejor de agrupar imágenes juntas en lugar de ponerlas en una publicación?
EDITO: Si uso the_content() en mi bucle $image_query, muestra las imágenes como:
<p>
<a href="...">
<img src="..." />
</a>
</p>
pero lo que necesito es algo como:
<li>
<a href="...">
<img src="..." />
</a>
</li>
Es mejor usar get_children en lugar de get_posts. Aquí hay un ejemplo rápido que funcionará. Esto está en forma de una función que se define en tu plugin o en functions.php y luego se usa la función como una etiqueta de plantilla.
/**
* Obtiene todas las imágenes adjuntas a una entrada
* @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";
/**
* Recorre cada adjunto
*/
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;
}

¿Llamo a esta función en mi bucle $image_query? Lo intenté pero solo devuelve una cadena vacía
