Cum poți obține dimensiunea miniaturii unei postări?
Știu cum să setez dimensiunea unei miniaturi pentru o postare folosind WP Admin Setări Media sau folosind această funcție:
set_post_thumbnail_size( 150, 150 )
Dar cum aș putea obține lățimea și înălțimea care au fost setate pentru dimensiunea unei miniaturi?
Mi-ar plăcea să pot face ceva de genul:
get_post_thumbnail_size(); // returnează array(150, 150)
Cum s-ar putea realiza acest lucru? Se folosește get_option()
, și care ar fi cheile pentru opțiunile de lățime și înălțime ale miniaturii?

Există însă o altă metodă:
get_option( 'thumbnail_size_w' );
get_option( 'thumbnail_size_h' );
Notă: thumbnail
este una dintre dimensiunile setate în interiorul $_wp_additional_image_sizes
. Astfel, apelul către get_option()
va funcționa și pentru orice altă dimensiune de imagine.

Aceasta este de fapt cea mai bună opțiune deoarece plugin-ul poate rula hook-urile sale pe ea.

Când o dimensiune de imagine este adăugată fie de WordPress (add_image_size
), de un plugin sau de codul personalizat, aceasta este adăugată în variabila globală $_wp_additional_image_sizes
. Nu există o funcție similară pentru extragerea datelor din această variabilă globală, dar puteți verifica direct conținutul acesteia pentru a determina lățimea și înălțimea unei dimensiuni de imagine înregistrate.
Exemplu:
global $_wp_additional_image_sizes;
// Afișează lățimea
echo $_wp_additional_image_sizes['post_thumbnail']['width'];
// Afișează înălțimea
echo $_wp_additional_image_sizes['post_thumbnail']['height'];
Desigur, asigurați-vă că accesați aceste valori după ce ați setat dimensiunea. De exemplu, dacă setați dimensiunea thumbnail-ului în timpul inițializării (init
), trebuie să efectuați operațiunile necesare după acel punct (altfel veți obține dimensiunile așa cum erau înainte de setare).
Sper că aceste informații vă sunt utile.

Ca o completare la motivul pentru care este atât de dificil să obții aceste numere, există o îmbunătățire în nucleu care conține un patch finalizat. Din păcate, acesta încă nu a fost integrat în nucleu.
Urmărește progresul acestui tichet: Wordpress Trac: Îmbunătățirea funcției get_intermediate_image_sizes()
pentru a include nu doar numele, ci și dimensiunile.

Ceea ce ai nevoie este această funcție: wp_get_attachment_image_src
Codex: http://codex.wordpress.org/Function_Reference/wp_get_attachment_image_src
Va returna un array care conține URL-ul, lățimea și înălțimea atașamentului.

În plus față de postarea de mai sus:
$attachment = wp_get_attachment_image_src( $attachment_id ); // unde $attachment_id este ID-ul atașamentului din care doriți să obțineți thumbnail-ul
Apoi pur și simplu folosiți următorul cod pentru a afișa URL-ul, lățimea și înălțimea:
echo $attachment[0]; // url
echo $attachment[1]; // lățime
echo $attachment[2]; // înălțime
