테마 내에서 가능한 모든 썸네일 크기 목록을 얻는 방법


24

하위 테마에 정의 된 모든 이미지 크기 (바람직한 배열)의 크기를 얻기 위해 플러그인에서 어떤 기능을 사용할 수 있습니까?

명확히하기 위해 새 이미지 크기 를 만드는 방법을 묻지 않습니다 .


인터페이스를 사용하여 이와 같은 것을 검색하면 추가 이미지 크기 (zui) 플러그인이 나타났습니다 . 업데이트없이 500 일이 있지만 첫 번째 테스트 배치를 통과했습니다.
brasofilo

답변:


41

여기에서 찾았습니다 . 정답은:

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

functions.php파일 상단에 파일 을 추가하면 작동하지 않지만 해당 파일의 기능에 충실하면 작동합니다.
kevnk


13

WordPress 코어 에는 중간 이미지 크기 (예 : 너비 및 높이)를 가져 오는 기본 방법 이 없지만 다음 도우미 기능 은 등록 된 모든 이미지 크기와 크기를 가져옵니다.

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

다음과 유사한 결과가 출력됩니다.

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하십시오. 나머지는 추가 크기를 반환하지만 기본 크기는 반환하지 않습니다.
Cazuma Nii Cavalcanti

2
더 나은 당신이 사용하는 경우 $default_image_sizes = get_intermediate_image_sizes();거기로 medium_largeWP 4.4 이후 크기입니다.
natebeaty September

좋은 제안; 귀하의 추천으로 답변을 업데이트했습니다.
rjb

ACF는 미디어 어레이를 망쳐 놓았습니다.
Adam Patterson

3

다른 답변이 작동하지 않으면이 코드를 사용하므로 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>';
}

나는 여러 가지 방법을 테스트 했으며이 방법이 마침내 작동했습니다. (WP + WooCommerce + 사용자 지정 테마)
Juraj.Lorinc
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.