Como obter uma lista de todos os possíveis tamanhos de miniaturas definidos dentro de um tema

20

Qual função posso usar em um plug-in para obter as dimensões de cada tamanho de imagem (em uma matriz, de preferência) que é definido em um tema filho?

Apenas para esclarecimento, não estou perguntando como criar um novo tamanho de imagem.

    
por torinagrippa 11.11.2011 / 19:03

4 respostas

30

Encontrei aqui . A resposta é:

global $_wp_additional_image_sizes; 
print '<pre>'; 
print_r( $_wp_additional_image_sizes ); 
print '</pre>';
    
por torinagrippa 11.11.2011 / 19:09
11

Se você precisar apenas dos nomes de todos os tamanhos de imagem, use get_intermediate_image_sizes :

<pre>
<?php print_r(get_intermediate_image_sizes()); ?>
</pre>
    
por sqren 22.05.2013 / 13:32
7

O núcleo do WordPress não possui um método nativo para obter imagens intermediárias tamanhos (ou seja, largura e altura), mas a função auxiliar seguinte obterá todos os tamanhos de imagem registrados junto 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;
}

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] => 
        )

)
    
por rjb 06.01.2017 / 22:18
2

Se a outra resposta não funcionar, use este código para que ele seja executado depois que o WordPress for inicializado.

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>';
}
    
por Shoaib Iqbal 12.12.2016 / 11:41

Tags