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


24

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

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


Al buscar algo como esto, pero con una interfaz, encontré el complemento Tamaños de imagen adicionales (zui) . Tiene 500 días sin actualizaciones, pero pasó el primer lote de pruebas.
brasofilo

Respuestas:


41

Lo encontré aquí . La respuesta es:

global $_wp_additional_image_sizes; 
print '<pre>'; 
print_r( $_wp_additional_image_sizes ); 
print '</pre>';

Agregarlo a la parte superior del functions.phparchivo no funcionará, pero péguelo en cualquiera de sus funciones en ese archivo y debería funcionar.
kevnk


13

El núcleo de WordPress no tiene un método nativo para obtener tamaños de imagen intermedios (es decir, ancho y alto), pero la siguiente función auxiliar 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 arrojará 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] => 
        )

)

3
+1 para una respuesta más completa. Los otros devuelven tamaños adicionales pero no los predeterminados.
Cazuma Nii Cavalcanti

2
Aún mejor si lo usa $default_image_sizes = get_intermediate_image_sizes();ya que hay un medium_largetamaño desde WP 4.4.
natebeaty

Buena sugerencia; He actualizado la respuesta con tu recomendación.
rjb

ACF me ha mimado con su conjunto de medios.
Adam Patterson

3

Si la otra respuesta no funcionó, use 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>';
}

He probado varios métodos y este finalmente funcionó. (WP + WooCommerce + tema personalizado)
Juraj.Lorinc
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.