Je souhaite récupérer l'image sélectionnée d'une publication en tant qu'objet (tableau) afin de disposer de toutes les tailles d'image disponibles. La fonction get_the_post_thumbnail () ne fait pas cela, des idées?
Commencez par obtenir les tailles d’image enregistrées et l’identifiant de pièce jointe:
$sizes = get_intermediate_image_sizes();
$post_thumbnail_id = get_post_thumbnail_id();
Parcourez les tailles enregistrées et créez un tableau:
$images = array();
foreach ( $sizes as $size ) {
$images[] = wp_get_attachment_image_src( $post_thumbnail_id, $size );
}
Combiné en tant que fonction à placer dans functions.php:
function get_all_image_sizes($attachment_id = 0) {
$sizes = get_intermediate_image_sizes();
if(!$attachment_id) $attachment_id = get_post_thumbnail_id();
$images = array();
foreach ( $sizes as $size ) {
$images[] = wp_get_attachment_image_src( $attachment_id, $size );
}
return $images;
}
Usage:
$featured_image_sizes = get_all_image_sizes();
C'est vieux, mais la réponse ci-dessus n'est pas tout à fait complète. Pour obtenir correctement toutes les tailles d'image avec tous les attributs d'image, vous devez également saisir l'objet de pièce jointe.
Quelque chose comme ça:
if ( has_post_thumbnail() ) {
$thumb = array();
$thumb_id = get_post_thumbnail_id();
// first grab all of the info on the image... title/description/alt/etc.
$args = array(
'post_type' => 'attachment',
'include' => $thumb_id
);
$thumbs = get_posts( $args );
if ( $thumbs ) {
// now create the new array
$thumb['title'] = $thumbs[0]->post_title;
$thumb['description'] = $thumbs[0]->post_content;
$thumb['caption'] = $thumbs[0]->post_excerpt;
$thumb['alt'] = get_post_meta( $thumb_id, '_wp_attachment_image_alt', true );
$thumb['sizes'] = array(
'full' => wp_get_attachment_image_src( $thumb_id, 'full', false )
);
// add the additional image sizes
foreach ( get_intermediate_image_sizes() as $size ) {
$thumb['sizes'][$size] = wp_get_attachment_image_src( $thumb_id, $size, false );
}
} // end if
// display the 'custom-size' image
echo '<img src="' . $thumb['sizes']['custom-size'][0] . '" alt="' . $thumb['alt'] . '" title="' . $thumb['title'] . '" width="' . $thumb['sizes']['custom-size'][1] . '" height="' . $thumb['sizes']['custom-size'][2] . '" />';
} // end if