Jak uzyskać rozmiar miniatury postu?

13

Wiem, jak ustawić rozmiar miniatury posta przy użyciu ustawień WP Admin Media lub tej funkcji :

set_post_thumbnail_size( 150, 150 )

Ale jak uzyskać szerokość i wysokość obrazu , które zostały ustawione dla rozmiaru miniatury obrazu?

Chciałbym móc zrobić coś takiego:

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

Jak by to było zrobione? Czy to za pomocą get_option(), i czy klawisze opcji służą do szerokości i wysokości miniatury?

mikkelbreum
źródło

Odpowiedzi:

8

Kiedy rozmiar obrazu jest dodawany albo przez WordPress ( add_image_size), albo przez wtyczkę albo własny kod dodawany do $_wp_additional_image_sizesglobalnego, nie mogę znaleźć podobnej funkcji do pobierania danych z tego globalnego, ale z pewnością możesz po prostu zajrzeć do środka globalny, aby określić, jaka szerokość i wysokość ma zarejestrowany rozmiar obrazu.

Przykład:

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'];

Oczywiście pamiętaj, aby odwoływać się do tych wartości w punkcie po ustawieniu rozmiaru. Więc jeśli na przykład ustawiasz rozmiar miniatury podczas init, musisz upewnić się, że zrobisz wszystko, co trzeba po tym punkcie (w przeciwnym razie odzyskasz rozmiary takie, jakie były przed ustawieniem).

Mam nadzieję, że to pomaga.

t31os
źródło
Wydaje się, że jest post-thumbnailraczej niż post_thubmnail(WP3.6)
user2019515
15

Istnieje jednak inny sposób:

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

Uwaga: thumbnailjest jednym z rozmiarów ustawionych w środku $_wp_additional_image_sizes. Dlatego wezwanie do get_option()będzie działać również dla każdego innego rozmiaru obrazu.

znak
źródło
4
Jest to właściwie najlepsza opcja, ponieważ wtyczka może uruchamiać na niej zaczepy.
fuxia
1
Dlatego jestem zaskoczony, że nie zostało jeszcze wspomniane.
Mark
1

Pamiętaj, że global $_wp_additional_image_sizes; może to nie działać zgodnie z oczekiwaniami. Na przykład użycie w wtyczce nie zwróci dodatkowych rozmiarów zarejestrowanych przez Motywy.

eeMZee
źródło
Będzie, jeśli wykonasz połączenie później w sekwencji akcji, tj. jeśli motyw rejestruje rozmiary akcji inicjującej, połączenie musi zostać wykonane po tej akcji.
t31os
1

Jedyne, czego wciąż brakuje, to identyfikator miniatury:

$post_thumbnail_id = get_post_thumbnail_id( $post_id );
$attachment = wp_get_attachment_image_src( $post_thumbnail_id );
$width=$attachment[1];
$height=$attachment[2];
Aleksander Posławski
źródło
-1

Potrzebujesz tej funkcji: wp_get_attachment_image_src

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

Zwróci tablicę zawierającą adres URL, szerokość i wysokość załącznika.

Mihael
źródło
1
Tak, ale oczekuje identyfikatora dla danego obrazu, użytkownik nie ma identyfikatora do przekazania, chce znaleźć zarejestrowany rozmiar według nazwy, np. miniatura (post_thumbnail).
t31os
-1

Oprócz powyższego postu:

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

Następnie użyj następnego kodu, aby wyświetlić adres URL, szerokość i wysokość:

echo $attachment[0]; // url
echo $attachment[1]; // width
echo $attachment[2]; // height
Gerben Van Dijk
źródło