Cum poți obține dimensiunea miniaturii unei postări?

14 dec. 2011, 23:59:01
Vizualizări: 27.2K
Voturi: 16

Ș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?

0
Toate răspunsurile la întrebare 7
3
15

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.

10 feb. 2012 10:43:12
Comentarii

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

fuxia fuxia
10 feb. 2012 15:55:34

De aceea sunt surprins că nu a fost menționată încă.

Mark Mark
10 feb. 2012 16:00:01

Se pare că acest lucru nu funcționează pentru dimensiuni personalizate ale imaginilor?

Loosie94 Loosie94
16 mar. 2022 16:46:30
1

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.

15 dec. 2011 15:54:42
Comentarii

Se pare că este post-thumbnail și nu post_thubmnail (WP3.6)

user2019515 user2019515
23 sept. 2013 12:38:18
1

Singurul lucru care încă lipsește este ID-ul miniaturii:

$post_thumbnail_id = get_post_thumbnail_id( $post_id );
$attachment = wp_get_attachment_image_src( $post_thumbnail_id );
$width=$attachment[1];
$height=$attachment[2];
20 iul. 2012 16:33:45
Comentarii

De fapt, acesta este singurul răspuns cu adevărat util pentru toate cazurile posibile, în special atunci când nu ești în contextul postării.

Picard Picard
30 oct. 2021 14:02:47
0

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.

10 feb. 2012 16:42:17
1

Țineți cont că acest global $_wp_additional_image_sizes; s-ar putea să nu funcționeze așa cum vă așteptați. De exemplu, atunci când îl utilizați într-un plugin, nu va returna dimensiunile adiționale pe care un Tema le-a înregistrat.

26 ian. 2012 23:37:21
Comentarii

Acest lucru se va întâmpla dacă faci apelul suficient de târziu în secvența de acțiuni, adică dacă tema înregistrează dimensiunile pe acțiunea init, apelul tău trebuie făcut după ce această acțiune a avut loc.

t31os t31os
11 apr. 2013 22:08:07
1
-1

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.

15 dec. 2011 00:32:59
Comentarii

Da, dar așteaptă un ID pentru o imagine specifică, utilizatorul nu are un ID de transmis, el vrea să afle dimensiunea înregistrată după nume, de ex. thumbnail (post_thumbnail).

t31os t31os
19 dec. 2011 15:12:50
0
-1

Î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
15 dec. 2011 12:18:50