Jakiej funkcji mogę użyć we wtyczce, aby uzyskać wymiary każdego rozmiaru obrazu (najlepiej w tablicy), który jest zdefiniowany w motywie potomnym?
Tylko dla wyjaśnienia Nie pytam, jak utworzyć nowy rozmiar obrazu.
Jakiej funkcji mogę użyć we wtyczce, aby uzyskać wymiary każdego rozmiaru obrazu (najlepiej w tablicy), który jest zdefiniowany w motywie potomnym?
Tylko dla wyjaśnienia Nie pytam, jak utworzyć nowy rozmiar obrazu.
Odpowiedzi:
Znalazłem to tutaj . Odpowiedź to:
global $_wp_additional_image_sizes;
print '<pre>';
print_r( $_wp_additional_image_sizes );
print '</pre>';
functions.php
pliku nie będzie działać, ale należy umieścić go w dowolnej funkcji w tym pliku i powinien on działać.
Jeśli potrzebujesz tylko nazw wszystkich rozmiarów obrazów, możesz użyć get_intermediate_image_sizes :
<pre>
<?php print_r(get_intermediate_image_sizes()); ?>
</pre>
Rdzeń WordPress nie ma natywnej metody uzyskiwania pośrednich rozmiarów obrazu (tj. Szerokości i wysokości), ale następująca funkcja pomocnicza uzyska wszystkie zarejestrowane rozmiary obrazów wraz z ich wymiarami:
/**
* Get all the registered image sizes along with their dimensions
*
* @global array $_wp_additional_image_sizes
*
* @link http://core.trac.wordpress.org/ticket/18947 Reference ticket
*
* @return array $image_sizes The image sizes
*/
function _get_all_image_sizes() {
global $_wp_additional_image_sizes;
$default_image_sizes = get_intermediate_image_sizes();
foreach ( $default_image_sizes as $size ) {
$image_sizes[ $size ][ 'width' ] = intval( get_option( "{$size}_size_w" ) );
$image_sizes[ $size ][ 'height' ] = intval( get_option( "{$size}_size_h" ) );
$image_sizes[ $size ][ 'crop' ] = get_option( "{$size}_crop" ) ? get_option( "{$size}_crop" ) : false;
}
if ( isset( $_wp_additional_image_sizes ) && count( $_wp_additional_image_sizes ) ) {
$image_sizes = array_merge( $image_sizes, $_wp_additional_image_sizes );
}
return $image_sizes;
}
Które wygenerują wyniki podobne do:
Array
(
[thumbnail] => Array
(
[width] => 150
[height] => 150
[crop] => 1
)
[medium] => Array
(
[width] => 300
[height] => 300
[crop] =>
)
[medium_large] => Array
(
[width] => 768
[height] => 0
[crop] =>
)
[large] => Array
(
[width] => 1024
[height] => 1024
[crop] =>
)
)
$default_image_sizes = get_intermediate_image_sizes();
ponieważ istnieje medium_large
rozmiar od WP 4.4.
Jeśli inna odpowiedź nie zadziałała, użyj tego kodu, aby działał po zainicjowaniu WordPress.
add_action('init', 'get_all_image_sizes');
function get_all_image_sizes(){
global $_wp_additional_image_sizes;
print '<pre>';
print_r( $_wp_additional_image_sizes );
print '</pre>';
}