워드프레스 사이트 이전 팁

웹사이트 이전을하면서 도메인을 변경하는 경우 기존에 쌓아왔던 많은 데이터들에 대한 일괄적인 변경이 필요하다. 이를 워드프레스의 글/옵션들 하나하나 찾아다니면서 검색하기는 매우 힘들기때문에 Database에서 sql 구문으로 한번에 변경하면 빠르게 일괄 처리가 가능하다. 일괄변경을 하기전에는 문제가 생기거나 실수를 할 수 있으니 꼭 DB를 백업해두고 작업을 진행하도록 하자.

1. wp_options 변경

다음 쿼리를 이용하여 기존 사이트 주소와 직접적으로 연관이된 옵션설정값들을 일괄로 확인하는것이 가능하다.

SELECT * FROM wp_options WHERE option_value LIKE '%기존주소%'

siteurl, home 변경

워드프레스의 경우 위의 두 값을 기반으로해서 모든 퍼머링크나, 메뉴링크, 자바스크립트/CSS 링크 등을 출력하므로 위 두개 사항은 필수적으로 확인하여 수정하여여한다.

기타 값

위의 두 값 외에는 해당 쿼리에 대한 결과들을 보고 수정해야할지 판단해서 수정한다. 잘 확신이서지 않는 값들은 바꿔가면서 사이트가 잘 동작하는지 미리 테스트 해보고 변경해야한다. 테마의 파비콘 파일이라던가, 테마용으로 업로드했던 이미지들이 기존주소로 고정되어 저장된 경우들이 많기때문에 이런 값들은 다음 쿼리를 이용하여 새 주소값으로 replace 해주면 된다.

UPDATE wp_options
SET option_name = REPLACE (option_name, 'http://기존주소', 'http://새주소')
WHERE option_value LIKE '%http://기존주소%'

2. wp_post 변경

포스트 내용에도 기존 사이트에 링크를 걸었거나 할경우 동일한 방법을 통해 새 주소로 다 바꿔치기 할 수 있다.

SELECT * FROM wp_posts WHERE post_content LIKE '%기존주소%'

3. wp_postmeta 변경

포스트 메타에는 포스트내용 외에 추가적인 기타 정보들이 많이 들어간다.
특히 워드프레스 메뉴 생성시 메뉴클릭했을때 어느주소로 이동할지 사용자가 직접 지정했던 값들이 있다면, 해당 값들을 일괄 변경해줄 수 있다. 커스텀 포스트를 사용하면서 저장되었던 메타 값들도 일괄변경 가능하다.

SELECT * FROM wp_postmeta WHERE meta_value LIKE '%기존주소%'

위의 쿼리로 변경해야할 부분이 뭐가 있는지 확인한 후, 수동으로 바꿀것은 바꾸고 확실한것들은 다음 쿼리로 일괄 replace한다.

UPDATE wp_postmeta
SET meta_value = REPLACE (meta_value, 'http://기존주소', 'http://새주소')
WHERE meta_value LIKE '%http://기존주소%'

생각해볼것: 상대 주소 사용

새 주소로 변경하는 김에 http://가 박혀있는 절대주소 값 대신에 상대주소를 사용하는 것도 나중을 위해 도움이 될듯하다.
상대주소의 여러 종류에 대한 부분은 스택오버플로우에 누가 잘 설명해두었으니 여기를 참조

상대주소값을 사용할경우 추후 http -> https 변경이나 또다른 사이트 이전시에 최소한의 변경으로 사이트를 정상 동작하게 만들 수 있는 장점이 있다. 사이트 전반에 걸쳐 상대주소값을 사용하게되면 실사이트 말고 localhost나 테스트 서버에서 테스트를 진행할 경우에도 손쉽게 테스트를 할 수 있다.