생성 된 썸네일에 대한 사용자 정의 이름 설정


9

자동 생성 된 썸네일의 명명 규칙을 설정하는 데 사용할 수있는 필터가 있습니까?

이 같은:

  • thumbnail_150x150.jpg-> 썸네일 -s.jpg
  • thumbnail_300x300.jpg-> 썸네일 -m.jpg
  • thumbnail_600x600.jpg-> 썸네일 -l.jpg

답변:


4

대답이 아니오 인 것 같습니다 ...

핵심 기능을 따라 막 다른 골목을 찾았습니다. 그리고 Rarst가 말하는 이 게시물 ( top에서 add_image_size ()을 어떻게 만들 수 있습니까? )을 찾았습니다 .

중간 이미지 생성은 매우 견고합니다. Image_resize ()는 코드에 가깝게 유지하고 후크가 완전히 없습니다.

그러나 , 다른 대답 ( bradt )과 그가 출판 한 코드 ( WordPress의 Image Crop Position ) 의 선두에 따라 , 나는 그것을 얻었다 고 생각합니다 :)

함수 bt_generate_attachment_metadata에서 방금 bt_image_make_intermediate_size마지막 매개 변수 를 포함하도록 호출을 수정했습니다.$size

$resized = bt_image_make_intermediate_size( $file, $size_data['width'], $size_data['height'], $size_data['crop'], $size );

그리고 bt_image_make_intermediate_size다음과 같이 함수의 시작을 수정했습니다 .

  • $size함수에 매개 변수를 추가했습니다
  • 대신 기본의 null가치 $suffix하는 switch우리의 새로운 접미어
function bt_image_make_intermediate_size( $file, $width, $height, $crop = false, $size ) {
    if ( $width || $height ) {
        switch($size) {
            case 'thumbnail':
                $suffix = 't';
                break;
            case 'medium':
                $suffix = 'm';
                break;
            case 'large':
                $suffix = 'l';
                break;
            default:
                $suffix = null;
                break;
        }
        $resized_file = bt_image_resize( $file, $width, $height, $crop, $suffix, null, 90 );

여기 , 참조 용으로 개조 한 전체 코드의 사본.
그리고 원본 에서 diff .

아마도 모든 코드가 베어 본으로 축소 될 수 있지만이 방법으로 사용자 정의 자른 이미지의 이점을 얻을 수 있습니다 :))


1
죄송합니다. 아직 여행 중입니다. 곧 테스트하고 알려 드리겠습니다. 감사.
Sean Lee

이 답변은 여전히 ​​유효합니까? 몇 년이
지났으니

2

image_make_intermediate_size 필터를 사용할 수 있지만 $ 파일 이름에 따라 중간 파일을 변경하려는 이름을 파악해야합니다 (이 시점에서 파일이 이미 생성되었으므로 파일 이름을 바꿉니다).

"썸네일"에 대한 중간 크기 이미지 만 생성하므로 다음과 같이 간단합니다.

add_filter( 'image_make_intermediate_size', function( $filename ) {

    // old 2017_234783843-100x100.jpg
    $old = $filename;
    // new 2017_234783843-thumbnail.jpg
    $new = preg_replace("/(\d+_\d+)-\d+x\d+\.(.*)/i", "$1-thumbnail.$2", $old );

    rename($old, $new);

    return $new;
} );

1
정규식 덜 구체적 일 수 있었다"/(.*)-\d+x\d+\.(.*)/i"
브누아
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.