Cómo obtener una lista de todos los tamaños de miniaturas posibles establecidos dentro de un tema

20

¿Qué función puedo usar en un complemento para obtener las dimensiones de cada tamaño de imagen (preferiblemente en una matriz) que se define en un tema secundario?

Solo para aclarar no estoy preguntando cómo crear un nuevo tamaño de imagen.

    
pregunta torinagrippa 11.11.2011 - 19:03

4 respuestas

30

Lo encontré aquí . La respuesta es:

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

Si solo necesita los nombres de todos los tamaños de imagen, puede usar get_intermediate_image_sizes :

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

El núcleo de WordPress no tiene un método nativo para obtener una imagen intermedia tamaños (es decir, ancho y alto), pero la siguiente función de ayuda obtendrá todos los tamaños de imagen registrados junto con sus dimensiones:

/**
 * 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;
}

Lo que generará resultados similares 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] => 
        )

)
    
respondido por el rjb 06.01.2017 - 22:18
2

Si la otra respuesta no funcionó, usa este código, por lo que se ejecutará después de que se inicialice 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>';
}
    
respondido por el Shoaib Iqbal 12.12.2016 - 11:41

Lea otras preguntas en las etiquetas