Comment obtenez-vous la taille de la miniature du message?

13

Je sais comment définir la taille d'une image miniature de message à l'aide des paramètres de média WP Admin ou à l'aide de cette fonction :

set_post_thumbnail_size( 150, 150 )

Mais comment obtenir la largeur et la hauteur de l'image qui ont été définies pour une taille de miniature d'image?

J'aimerais pouvoir faire quelque chose comme ça:

get_post_thumbnail_size(); // return array(150, 150)

Comment cela se ferait-il? Est-ce en utilisant get_option(), et les touches d'options seraient-elles pour la largeur et la hauteur des vignettes?

mikkelbreum
la source

Réponses:

8

Lorsqu'une taille d'image est ajoutée soit par WordPress ( add_image_size), soit par un plugin ou votre propre code personnalisé, elle est ajoutée dans le $_wp_additional_image_sizesglobal, je ne trouve pas de fonction similaire pour extraire des données de ce global, mais vous pouvez certainement regarder à l'intérieur le global pour déterminer la largeur et la hauteur d'une taille d'image enregistrée.

Exemple:

global $_wp_additional_image_sizes;
// Output width
echo $_wp_additional_image_sizes['post_thumbnail']['width'];
// Output height
echo $_wp_additional_image_sizes['post_thumbnail']['height'];

Bien sûr, assurez-vous de référencer ces valeurs à un moment donné après avoir défini la taille. Donc, par exemple, si vous définissez la taille de la vignette pendant l'initialisation, vous devrez vous assurer de faire tout ce que vous devez après ce point (sinon vous récupérerez les tailles telles qu'elles étaient avant de les définir).

J'espère que cela pourra aider.

t31os
la source
Il semble que ce soit post-thumbnailplutôt que post_thubmnail(WP3.6)
user2019515
15

Il existe cependant un autre moyen:

get_option( 'thumbnail_size_w' );
get_option( 'thumbnail_size_h' );

Remarque: thumbnailest l'une des tailles définies à l'intérieur $_wp_additional_image_sizes. Ainsi, l'appel à get_option()fonctionnera également pour toutes les autres tailles d'image.

marque
la source
4
C'est en fait la meilleure option car le plugin peut exécuter leurs crochets dessus.
fuxia
1
C'est pourquoi je suis surpris que cela n'ait pas encore été mentionné.
Mark
1

Gardez à l'esprit que cela global $_wp_additional_image_sizes; pourrait ne pas fonctionner comme prévu. Par exemple, lorsque le plugin est utilisé, il ne renverra pas les tailles supplémentaires enregistrées par un thème.

eeMZee
la source
Il le sera si vous effectuez l'appel suffisamment tard dans la séquence d'actions, c'est-à-dire. si le thème enregistre les tailles sur l'action init, votre appel doit être effectué après que cette action s'est produite.
t31os
1

La seule chose qui manque encore est l'ID de la miniature:

$post_thumbnail_id = get_post_thumbnail_id( $post_id );
$attachment = wp_get_attachment_image_src( $post_thumbnail_id );
$width=$attachment[1];
$height=$attachment[2];
Alexander Poslavsky
la source
-1

Vous avez besoin de cette fonction: wp_get_attachment_image_src

Codex: http://codex.wordpress.org/Function_Reference/wp_get_attachment_image_src

Il renverra un tableau contenant l'URL, la largeur et la hauteur de la pièce jointe.

Mihael
la source
1
Oui, mais il attend un identifiant pour une image donnée, l'utilisateur n'a pas d'identifiant à transmettre, il veut connaître la taille enregistrée par son nom, par exemple. miniature (post_thumbnail).
31
-1

En plus du poste ci-dessus:

$attachment = wp_get_attachment_image_src( $attachment_id ); // where $attachment_id is the ID of the attachment you want to get the thumbnail from

Ensuite, utilisez simplement le code suivant pour afficher l'URL, la largeur et la hauteur:

echo $attachment[0]; // url
echo $attachment[1]; // width
echo $attachment[2]; // height
Gerben Van Dijk
la source