Comment obtenir une liste de toutes les tailles de miniatures possibles définies dans un thème

20

Quelle fonction puis-je utiliser dans un plugin pour obtenir les dimensions de chaque taille d'image (dans un tableau, de préférence) définies dans un thème enfant?

Juste pour préciser, je ne vous demande pas comment créer une nouvelle taille d'image.

    
posée torinagrippa 11.11.2011 - 19:03

4 réponses

30

trouvé ici . La réponse est:

global $_wp_additional_image_sizes; 
print '<pre>'; 
print_r( $_wp_additional_image_sizes ); 
print '</pre>';
    
réponse donnée torinagrippa 11.11.2011 - 19:09
11

Si vous n'avez besoin que des noms de toutes les tailles d'image, vous pouvez utiliser get_intermediate_image_sizes :

.
<pre>
<?php print_r(get_intermediate_image_sizes()); ?>
</pre>
    
réponse donnée sqren 22.05.2013 - 13:32
7

Le noyau de WordPress ne dispose pas d'une méthode native pour obtenir une image intermédiaire. tailles (c'est-à-dire largeur et hauteur), mais la fonction d'assistance suivante obtiendra toutes les tailles d'image enregistrées ainsi que leurs dimensions:

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

Qui produira des résultats similaires à:

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

)
    
réponse donnée rjb 06.01.2017 - 22:18
2

Si l'autre réponse ne fonctionne pas, utilisez ce code pour qu'il s'exécute après l'initialisation de 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>';
}
    
réponse donnée Shoaib Iqbal 12.12.2016 - 11:41

Lire d'autres questions sur les étiquettes