블로그 이미지 파일이름을 숫자로 바꾸기

아내가 블로그를 쓴다고 해서 나중일을 생각해서 워드프레스로 만들었다.

오랫만에 워드프레스 3.01 을  깔아서 새로 만든 워드프레스 블로그에서 이미지를 올려 보니 한글파일이름이 그대로 올라가고, 워드프레스가 자동으로 썸네일을 3개 만드는데 한글 파일이름들이 다 깨져서 나왔다.

그런다고 매번 이미지 올릴때 한글이미지 파일인 경우 영어로 바꾸라고 할 수도 없다.

내 블로그도 워드프레스인데, 난 워드프레스에 바로 이미지를 올리지 않고, 플리커 비슷한 zenphoto 라는 오픈소스 이미지 툴을 통해서 업로드 해서 워드프레스에 복사해서 붙여 넣는다.  지금은 워드프레스에서 미디어를 관리할 수 있는 툴이 내장되어 있었지만, 몇년 전에는 그런게 없어서 플러그인을 써야 했는데 난 그냥 zenphoto 라는 프로그램을 사용했다.

이때에도 파일이름에 대해 같은 문제가 있었다.

이미지 파일이름도 검색엔진이 검색을 할때에 중요한 것인지 모르겠지만, 특히 한글 파일이름의 경우에는 어떤 브라우저의 설정에 따라서 안보일 때도 있다.

워드프레스 미디어 라이브러리

그래서 생각한 것은  이미지를 업로드할때 프로그램이 자동으로 파일 이름을 숫자로된 파일이름으로 바꾸는 것이다.  컴퓨터가 처리하기 편한대로 자동으로 바꿔주고, 난 의미만 따로 부여하면 그만이다.

이미지가 업로드될때 파일이름을 숫자로 바꾸는 간단한 소스코드를 추가했었다.

워드프레스에서 이미지 업로드시 요구사항

워드프레스에서도 이미지 파일을 올릴때 아래와 같이 되었으면 좋겠다.

1. 파일 이름이 자동으로 유일한 숫자 파일이름으로 바뀐다.

파일이름은 년날짜일 시간에 추가로 랜덤 숫자로 하면 유일한 값이 될것 같고 언제쯤 올린 것인지도 알 수 있을 것 같다.

2. 미디어 라이브러리에서 이미지 정보의 제목은 원래 파일이름이 들어간다

3. 워드프레스가 자동으로 만드는 썸네일 파일들은 바뀐 숫자 파일로 만들게 한다

워드프레스 3.0에서 이미지 파일업로드시 파일이름을 숫자로 자동으로 바꾸게 하는 방법

잠깐 검색해 보니 이걸 해주는 워드프로세용 플러그인이나 방법을 찾을 수가 없었다. 그래서 워드프레스 어드민 소스코드를 들여다 보다가 파일을 올리는 곳을 찾았다.

아래와 같이 두꺼운 글씨로 된 부분을 추가하고, 원래 $filename 은 주석처리 하면 된다.

wordpress\wp-admin\includes\file.php 파일에서

function wp_handle_upload 를 찾아서 아래 소스코드를 추가 하면 된다.

srand(time());
$random = (rand()%1000);
$filename = date(“ymdHis”) . $random . substr($file[‘name’],-4);

함수 안에서 회색 코드 사이에 추가하면 된다.

// A writable uploads dir will pass this test. Again, there’s no point overriding this one.
if ( ! ( ( $uploads = wp_upload_dir($time) ) && false === $uploads[‘error’] ) )

return call_user_func($upload_error_handler, $file, $uploads[‘error’] );

// 새로 추가
srand(time());
$random = (rand()%1000);
$filename = date(“ymdHis”) . $random . substr($file[‘name’],-4);

//  이건 주석처리 $filename = wp_unique_filename( $uploads[‘path’], $file[‘name’], $unique_filename_callback );

// Move the file to the uploads dir

$new_file = $uploads[‘path’] . “/$filename”;

if ( false === @ move_uploaded_file( $file[‘tmp_name’], $new_file ) )

return $upload_error_handler( $file, sprintf( __(‘The uploaded file could not be moved to %s.’ ), $uploads[‘path’] ) );

잠깐 본 것이라서 이 부분이외에 다른 문제가 있을지는 모르겠지만 일단 본 만큼 기록을 해 놓았다.

파일을 업로드 하는 곳에서 이름만 바꿔치기를 했는데 나머지는 워드프레스가 썸네일을 만드는 부분에서도 자동으로 바뀐 이름으로 썸네일을 만들고, 미디어 라이브러리에 파일을 관리할때 제목에는 숫자파일이 아니라 원래 파일이름이 들어간다.

이렇게 워드프레스 어드민 소스코드를 바꾸면 워드프레스를 업데이트 할때 마다 바꿔줘야 하는 불편함이 있다.

워드프레스 관리자 화면에서 조회수 확인하기의 경우에는, 워드프레스 소스코드가 업데이트 될때 몇번 어드민 소스코드 구조와 구현 방법이 바뀐적이 있어서 업데이트될때 방법을 다시 찾아야 하는 불편함도 있다.

그래도 아내가 이미지 파일을 올릴때 한글 파일명을 영어로 바꾸지 말고 그냥 올릴 수 있게 되었다.

파일이름을 숫자로 바꾸면 검색엔진 한테는 의미가 달라진다.  대신 검색엔진이 잘 찾을 수 있고, 만의 하나 시각장애인이 볼때나 , 이미지가 늦게 뜨거나 이미지가 없어졌을때에도 유용하게 이미지 설명에 꼭 의미를 적어 두는 것이 좋은 것 같다.

사용자가 올린 이미지 파일을 그래도 해줘야 할까? 아니면 나 처럼 의미를 빼버리고 컴퓨터가 처리하기 좋게 만들어주고, 사용자가 보는 것에 원래 이미지 파일이름을 주는 것이 나을까?

파일명을 그냥 쓰는 경우에는, 한글 파일명은 가끔 사용자 브라우저의 인코딩 옵션에 따라서 안보일때도 있고 , 파일명에 띄어쓰기도 된 경우도 있고, 파일명에도 신경써야 하기도 하다.

플리커의 경우를 보니 나 처럼 파일이름은 유일한 숫자로 만들고, 제목에는 원래 파일이름이 들어간다.

뭐가 답인지는 아직 잘 모르겠지만, 블로깅을 위해 이미지를 업로드할때에는 난 이 방법을 선호하는 것 같다.

Related Post