워드프레스 이미지 해상도 최대 2560px 되는 문제 해결하기

최근 고해상도로 업로드한 이미지가 가로 2560 해상도로 등록되어 있는 것을 알았습니다.
왜 이렇게 됬는지 검색해보니 워드프레스 5.3 부터 이미지 등록시 자동 리사이징을 한다는 사실을 알게되었습니다.
위 링크 내용 하단에 보면 이미지 스케일링 비활성화 하는 방법이 나와 있는데 문제는 5.3 업그레이드 -> 현재 사이에 존재하는 이미지들은 자동 복구되지 않는다는 점입니다.

//이미지 스케일링 비활성화법
add_filter( 'big_image_size_threshold', '__return_false' );

해외에도 같은 일로 이슈가 있었고 워드프레스측이 복구방법을 제공하지 않아서 직접 php 코드로 만들어 올리신분이 있었습니다. (석달전에 이런일이 있었는데 이제서 알다니 -.ㅜ)

복구 php 소스 : https://stackoverflow.com/a/59515057/4721232

워드프레스가 실제 원본이미지를 지운건 아니고 이름 뒤에 -scaled 라고 붙여서 미디어 라이브러리에 등록한것이라 DB에 sql 로 -scaled로 연결된 것을 원본으로 바꿔주는것입니다.
위 링크의 소스를 적용하면 미디어 라이브러리에 파일 링크는 정상으로 돌아오지만 미디어 라이브러리 메타 정보는 업데이트가 되지 않아서 해상도 표기는 2560으로 그대로 입니다.
이 정보는 Regenerate Thumbnails 플러그인으로 전체 재생성 돌리면 정상적으로 반영됩니다.

마지막으로 재생성 돌려도 생성된 -scaled 파일은 삭제되지 않더군요.
저는 쉘접속해서 리눅스 명령으로 일괄삭제했습니다.

find 업로드폴더경로 -type f -name "*-scaled*" -exec rm {} ;

파일명과 해상도 정보가 돌아왔습니다.


Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다