Bir tema içinde ayarlanmış tüm olası küçük resimlerin bir listesi nasıl elde edilir


24

Bir çocuk temasında tanımlanan her görüntü boyutunun (tercihen bir dizide) boyutlarını almak için bir eklentide hangi işlevi kullanabilirim?

Sadece açıklama için nasıl yeni bir resim boyutu oluşturacağımı sormuyorum .


Bunun gibi bir şey aramak, ancak bir arayüz ile, eklenti ile karşılaştı Ek resim boyutları (zui) . Güncelleme olmadan 500 gün geçirdi ancak ilk test testini geçti.
brasofilo

Yanıtlar:


41

Burada buldum . Cevap:

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

functions.phpDosyanın üstüne eklemek işe yaramaz, ancak bu dosyadaki işlevlerinizden birine yapıştırın ve çalışması gerekir.
kevnk


13

WordPress çekirdeği , ara görüntü boyutlarını (ör. Genişlik ve yükseklik) almak için yerel bir yönteme sahip değildir , ancak aşağıdaki yardımcı işlev , kayıtlı tüm görüntü boyutlarını boyutlarıyla birlikte alır:

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

Hangisi benzer sonuçlar verecek:

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
Daha eksiksiz bir cevap için + 1'leyin. Diğerleri ilave boyutlar getirir, ancak varsayılan olanları vermez.
Cazuma Nii Cavalcanti

2
WP 4.4'ten beri $default_image_sizes = get_intermediate_image_sizes();bir medium_largeboyut olarak kullanıyorsanız daha da iyi .
natebeaty

İyi öneri; Cevabını önerinle değiştirdim.
rjb

ACF beni medya dizisi ile şımarttı.
Adam Patterson,

3

Diğer cevap işe yaramadıysa, bu kodu kullanın, böylece WordPress başlatıldıktan sonra çalışacaktır.

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>';
}

Birkaç yöntem test ettim ve bu sonunda işe yaradı. (WP + WooCommerce + custom theme)
Juraj.Lorinc
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.