web-dev-qa-db-fra.com

Obtenir le nom de la taille de l'image à partir de sa dimension

Comme nous le savons, les tailles d'image ont des noms différents que nous pouvons utiliser pour appeler la taille d'image appropriée. Vous aimez les tailles "miniature", "grande", "moyenne" ou personnalisée "my-thumbnail". Je peux the_post_thumbnail_url( 'medium' ) pour obtenir une taille moyenne et ses dimensions.

cependant, j'ai besoin d'obtenir le nom de la taille de l'image. Pour être précis, si la taille de l'image est 300x200 et que son nom est "petit", je veux le devenir "petit" en entrant 300 et 200 dans une fonction.

Quelqu'un peut-il m'aider à atteindre cet objectif s'il vous plaît? Merci.

1
Jack Johansson

Ici, j'ai écrit une fonction pour vous. Placez cette fonction ci-dessous sur votre functions.php ou à un emplacement où il s'exécute et transmettez-lui la valeur width et height. Il vous renverra le nom de la taille de l'image sous la forme string et s'il n'en a pas trouvé, il renverra false.

/**
 * Get name by size information for image.
 *
 * @global $_wp_additional_image_sizes
 * @uses   get_intermediate_image_sizes()
 * @return string $_sizes bool Data for passed measurements image.
 */
function wpse_243461_get_image_size_name( $w = 150, $h = 150 ) {
    global $_wp_additional_image_sizes;

    $sizes = array();
    foreach ( get_intermediate_image_sizes() as $_size ) {
        if ( in_array( $_size, array('thumbnail', 'medium', 'medium_large', 'large') ) ) {
            if ( $w == get_option( "{$_size}_size_w" ) && $h == get_option( "{$_size}_size_h" ))
                return $_size;
        } elseif ( isset( $_wp_additional_image_sizes[ $_size ] ) ) {
            if ( $w == $_wp_additional_image_sizes[ $_size ]['width'] && $h == $_wp_additional_image_sizes[ $_size ]['height'] )
                return $_size;
        }
    }

    return false;
}

Par défaut, la largeur 150 et la hauteur 150 sont définies comme suit: $w = 150, $h = 150. Et vous devez l'utiliser comme the_dramatist_get_image_size_name(300, 300). N'oubliez pas que $w et $h prennent une valeur entière.

1
CodeMascot