web-dev-qa-db-fra.com

Comment puis-je obtenir les dimensions de la taille personnalisée?

En supposant que j’ai une taille de vignette personnalisée, définie par ce qui suit ...

add_image_size( $name, $dim_x, $dim_y, true );

... comment puis-je obtenir les dimensions d'image définies par programme, en utilisant uniquement $ name?

1
soupmagnet

Si vous examinez la source de la fonction, elle stocke simplement les arguments dans $_wp_additional_image_sizes global, clé par nom.

Autant que je me souvienne, il n'y a pas de fonction API dédiée (get_intermediate_image_sizes() retournera une liste de noms, mais pas de données). Il suffit d’accéder au global et de rechercher les données dont vous avez besoin par clé.

1
Rarst

Grâce à la réponse donnée par Rarst, j'ai pu trouver ce dans la documentation Wordpress ...

function get_image_sizes( $name ) {
    global $_wp_additional_image_sizes;
    $sizes = array();
    $get_intermediate_image_sizes = get_intermediate_image_sizes();
    // Create the full array with sizes and crop info
    foreach( $get_intermediate_image_sizes as $_size ) {
            if ( in_array( $_size, array( 'thumbnail', 'medium', 'large' ) ) ) {
                    $sizes[ $_size ]['width'] = get_option( $_size . '_size_w' );
                    $sizes[ $_size ]['height'] = get_option( $_size . '_size_h' );
                    $sizes[ $_size ]['crop'] = (bool) get_option( $_size . '_crop' );
            } elseif ( isset( $_wp_additional_image_sizes[ $_size ] ) ) {
                    $sizes[ $_size ] = array( 
                            'width' => $_wp_additional_image_sizes[ $_size ]['width'],
                            'height' => $_wp_additional_image_sizes[ $_size ]['height'],
                            'crop' =>  $_wp_additional_image_sizes[ $_size ]['crop']
                    );
            }
    }
    // Get only 1 size if found
    if ( $size ) {
            if( isset( $sizes[ $size ] ) ) {
                    return $sizes[ $size ];
            } else {
                    return false;
            }
    }
    return $sizes;
}

<?php 
    var_dump(get_image_sizes('custom-size'));
?>

array(3) {
    ["width"] => int(250)
    ["height"] => int(250)
    ["crop"] =>  bool(true)
}
1
soupmagnet