Cara mendapatkan daftar semua ukuran thumbnail yang mungkin diatur dalam tema


24

Fungsi apa yang dapat saya gunakan dalam sebuah plugin untuk mendapatkan dimensi dari setiap ukuran gambar (dalam array lebih disukai) yang didefinisikan dalam tema anak?

Hanya untuk klarifikasi, saya tidak bertanya bagaimana cara membuat ukuran gambar baru.


Mencari sesuatu seperti ini, tetapi dengan antarmuka, menemukan plugin Ukuran gambar tambahan (zui) . Ini memiliki 500 hari tanpa pembaruan tetapi lulus batch pertama tes.
brasofilo

Jawaban:


41

Ditemukan di sini . Jawabannya adalah:

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

Menambahkannya ke bagian atas functions.phpfile tidak akan berfungsi, tetapi tempelkan di salah satu fungsi Anda di file itu dan itu akan berfungsi.
kevnk


13

WordPress inti tidak memiliki metode asli untuk mendapatkan ukuran gambar menengah (yaitu lebar dan tinggi), tetapi fungsi pembantu berikut akan mendapatkan semua ukuran gambar yang terdaftar bersama dengan dimensinya:

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

Yang akan menampilkan hasil yang mirip dengan:

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 untuk jawaban yang lebih lengkap. Yang lain mengembalikan ukuran tambahan tetapi tidak yang standar.
Cazuma Nii Cavalcanti

2
Bahkan lebih baik jika Anda menggunakan $default_image_sizes = get_intermediate_image_sizes();karena ada medium_largeukuran sejak WP 4.4.
natebeaty

Saran yang bagus; Saya telah memperbarui jawabannya dengan rekomendasi Anda.
rjb

ACF telah memanjakan saya dengan susunan medianya.
Adam Patterson

3

Jika jawaban lain tidak berhasil, gunakan kode ini, sehingga akan berjalan setelah WordPress diinisialisasi.

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

Saya telah menguji beberapa metode dan yang ini akhirnya berhasil. (WP + WooCommerce + tema khusus)
Juraj.Lorinc
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.