Existe-t-il un moyen standard d’obtenir toutes les tailles enregistrées des images présentées? On peut enregistrer différentes tailles avec add_image_size()
. Ce dont j'ai besoin, c'est d'obtenir toutes les tailles d'une image sélectionnée d'un message. Quelque chose comme ça:
$ tailles = get_post_feature_image_sizes ($ postid);
... qui retournera un tableau d'objets comme celui-ci (ici au format JSON):
[
{width: 200, height: 300, url: 'http://.........../wp-content/uploads/2015/10/file-200x300.jpg'},
{width: 300, height: 400, url: 'http://.........../wp-content/uploads/2015/10/file.jpg'},
]
Est-ce qu'il y a quelque chose comme ça, ou je vais devoir scanner tous les noms de fichiers du dossier de téléchargement avec regex?
Je ne me souviens pas d'une fonction qui ferait précisément cela, mais elle est facilement réalisée avec l'API globale:
get_post_thumbnail_id()
get_intermediate_image_sizes()
wp_get_attachment_image_src()
, qui fournit précisément les données dont vous avez besoin (URL et dimensions).Une fois que vous avez obtenu son ID ( get_post_thumbnail_id ($ YOUR_POST_ID)} _ ), vous devez connaître l'URL de la base de téléchargement et les métadonnées de la pièce jointe.
(URL de base de téléchargement) peut être trouvé dans un tableau retourné par wp_upload_dir () .
Métadonnées de pièce jointe peuvent être récupérés par wp_get_attachment_metadata () _ .
Voici une fonction pratique que j'ai écrite qui prépare les données d'URL pour toute pièce jointe d'image, pas seulement celle qui est en vedette.
function prepareImageData( $attachment_id ){
$uploads_baseurl = wp_upload_dir()['baseurl'];
$prepared = [];
$data = wp_get_attachment_metadata($attachment_id);
$prepared = [
'mime_type' => get_post_mime_type($attachment_id),
'url' => $uploads_baseurl.'/'.$data['file'],
'sizes' => [],
];
foreach( $data['sizes'] as $size => $sizeInfo ){
$prepared['sizes'][$size] = [
'url' => $uploads_baseurl.'/'.$sizeInfo['file'],
];
}
return $prepared;
}
Pour obtenir une image en fonction de sa taille, vous pouvez utiliser la fonction prédéfinie wordpress qui est the_post_thumbnail( $size, $attr )
.
vous pouvez utiliser des formats de support prédéfinis.
the_post_thumbnail();
the_post_thumbnail( 'thumbnail' ); // Thumbnail (default 150px x 150px max)
the_post_thumbnail( 'medium' ); // Medium resolution (default 300px x 300px max)
the_post_thumbnail( 'large' ); // Large resolution (default 640px x 640px max)
the_post_thumbnail( 'full' ); // Full resolution (original size uploaded)
the_post_thumbnail( array(100, 100) );
Cela pourrait vous aider.