Que função posso usar em um plug-in para obter as dimensões de cada tamanho de imagem (preferencialmente em uma matriz) definida em um tema filho?
Apenas para esclarecimento, não estou perguntando como criar um novo tamanho de imagem.
Que função posso usar em um plug-in para obter as dimensões de cada tamanho de imagem (preferencialmente em uma matriz) definida em um tema filho?
Apenas para esclarecimento, não estou perguntando como criar um novo tamanho de imagem.
Respostas:
Encontrei aqui . A resposta é:
global $_wp_additional_image_sizes;
print '<pre>';
print_r( $_wp_additional_image_sizes );
print '</pre>';
functions.php
arquivo não funcionará, mas cole-o em qualquer uma das suas funções nesse arquivo e deve funcionar.
Se você precisar apenas dos nomes de todos os tamanhos de imagem, poderá usar get_intermediate_image_sizes :
<pre>
<?php print_r(get_intermediate_image_sizes()); ?>
</pre>
O núcleo do WordPress não possui um método nativo para obter tamanhos intermediários de imagem (largura e altura), mas a seguinte função auxiliar obtém todos os tamanhos de imagem registrados, juntamente com suas dimensões:
/**
* 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;
}
O que produzirá resultados semelhantes a:
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();
pois há um medium_large
tamanho desde o WP 4.4.
Se a outra resposta não funcionou, use este código, para que ele seja executado após a inicialização do 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>';
}