Migration WordPress from XpressEngine

5년전 지금으로부터 개인 홈페이지를 구축할 때 사용한 XpressEngine은 저에게 웹 디자인이라는 재밌는 취미를 안겨주었습니다. 지금까지도 그 많은 취미 중 웹 디자인에 애착을 가지고 있고, 또 실무에 다양하고 유용하게 쓰이고 있는데요.

왜 XpressEngine에서 WordPress로 갈아탔나요?

많은 이유가 있었지만 “WordPress가 블로깅으로 적합하다”로 귀결된다 입니다.

개인차가 있겠지만 XpressEngine은 한국형 게시판에 촛점이 맞춰져 있어 블로그 용도로는 적합하지 않은것으로 생각되기 때문입니다.

1. SEO 최적화 이슈 feat. 삽질

흔히 있는일입니다. 그래서 다음의 방법들을 동원해서 문제를 해결했었습니다.

  • XE에 기본적으로 탑재되어있는 SEO 모듈을 사용.
  • 지저분한 중복 링크 이슈 –> [mid 숨기기 애드온]을 사용하여 중복링크 정리.
  • canonical tag 관련 이슈 –> SEO 모듈 코드수정
  • sitemap.xml 필요 –> [사이트맵 모듈]을 사용하여 해결
  • 삭제된 게시글 URL 관련문제 접속했을 때 404 페이지가 뜨지않는 문제 –>> XE Core 수정을 통해 문제해결

그런데 이제는 좀 번거롭군요.

2. 게시글 관리

예전에 XE에도 설치형 블로그로 텍스타일이 개발되어 나온적이 있습니다. 하지만 시간이 지나고 XE가 판올림되면서 텍스타일을 사용하고 있는 XE공식사이트 마저 그것을 버리게되면서 텍스타일의 개발방향도 불투명해졌습니다.

그러면 XE 내장 게시판 모듈을 사용해야하는데, 통합 게시판(전체 게시판)의 부재, 게시글 발행 예약 등의 불편함이 있었습니다.

3. 유지보수와 커뮤니티

개발방향과 커뮤니티는 XE 공식사이트 커뮤니티에도 많이 거론되었던 문제입니다. XE 1.4 부터 써왔지만 앞으로 개발방향을 보면

음…

XE에서 파생된 라이믹스가 있지만

음…

메이저 판올림 할때마다 터진 문제를 생각하면

음….. ㅎㅎ

XE에서 워드프레스로의 이전

TUNALABS에서 진행한 작업환경은 다음과 같습니다.

이전 작업 전 참고하시기 바랍니다.

서버정보

  • Microsoft IIS Server 10
  • MySQL 5.7
  • PHP 7.1.3

XE Core

  • v1.8.39

워드프레스

  • v4.7.5

이전 작업 전 확인사항

  • 게시글 분류까지 이전되지 않습니다. 아래의 과정을 따라 하신 뒤 게시글 분류는 워드프레스 관리자 페이지에서 직접 하셔야 합니다.
  • 비밀댓글도 같이 이전되기 때문에, 이전을 원치 않는 비밀댓글은 삭제 후 진행하시기 바랍니다. TUNALABS에서는 일부 비밀댓글을 제외한 나머지 비밀댓글은 이전하지 않았습니다.

TUNALABS이 XE에서 워드프레스로 이전한 데이터는 게시글과 게시글의 댓글입니다.

DB 작업은 XpressEngine 데이터베이스의 xe_comments와 xe_documents 테이블을 정상적으로 설치된 워드프레스 데이터베이스에 넣고 작업했습니다.

1. 게시글 이전

아래의 Query를 실행하여 게시글의 기본적인 [제목, 내용, 댓글수, 회원정보 등]이 이전합니다.

INSERT INTO wp_posts 
            (id, 
             post_author, 
             post_date, 
             post_date_gmt, 
             post_content, 
             post_title, 
             post_name, 
             to_ping, 
             pinged, 
             post_excerpt, 
             post_modified, 
             post_modified_gmt, 
             post_content_filtered, 
             comment_count, 
             xe_module_srl) 
SELECT document_srl, 
       1, 
       regdate, 
       last_update, 
       content, 
       title, 
       title, 
       '', 
       '', 
       '', 
       last_update, 
       last_update, 
       '', 
       comment_count, 
       module_srl 
FROM   xe_documents

이때, 게시글에 삽입된 이미지는 기존 XE 링크를 사용하도록 합니다.

XE에서의 이미지 경로는 ./files/attach/images/ 이므로 워드프레스 Root에 files 폴더를 복사해서 기존 이미지 URL을 유지합니다.

2. 게시글 권한 수정

아래의 Query를 실행하여 비밀 게시판에 있던 게시글의 권한을 private로 바꿔줍니다.

UPDATE `wp_posts` 
SET    post_status = REPLACE(`post_status`, 'publish', 'private') 
WHERE  `xe_module_srl` IN ( board_srl_1, board_srl_2, board_srl_3 );

SQL문에서 board_srl에 자신의 사이트 게시판 고유번호를 넣으면 해당 게시판에 속한 게시글 권한이 자신만 볼 수 있는 권한으로 변경됩니다.

3. 댓글 이전

아래의 Query를 실행하여 댓글을 이전합니다.

INSERT INTO wp_comments 
            (comment_id, 
             comment_post_id, 
             comment_author, 
             comment_author_email, 
             comment_author_ip, 
             comment_author_url, 
             comment_date, 
             comment_date_gmt, 
             comment_content, 
             comment_parent) 
SELECT comment_srl, 
       document_srl, 
       nick_name, 
       email_address, 
       ipaddress, 
       homepage, 
       regdate, 
       last_update, 
       content, 
       parent_srl 
FROM   xe_comments

4. 댓글 정보 동기화

아래의 Query를 실행하여 자신이 XE에서 작성한 댓글을 워드프레스의 자신의 계정과 매칭시켜줍니다.

UPDATE `wp_comments` 
SET    user_id = REPLACE(`user_id`, 0, 1) 
WHERE  `user_id` = 'admin'
  • ‘admin’ 에는 XE에서 자신이 사용하던 id를 넣습니다.
  • SET user_id 에는 워드프레스에서 자신이 사용하는 계정의 user_id를 넣습니다.

[wp_user] 테이블에서 자신이 사용하는 계정의 user_id를 알 수 있습니다.

5. 이미지 주소 변경

<img src=”files/attach/images/…”> 와 같은 이미지 경로를

<img src=”https://your-site-url/attach/image/…”> 와 같은 형식으로 바꿔줍니다.

아래의 Query를 실행하여 이미지 게시글 내 이미지 경로를 수정해줍니다.

UPDATE `wp_posts` 
SET    post_content = REPLACE(post_content, 'src="files/attach/images', 
                             'src="https://your-site-url/files/attach/images')

6. URL 설정

XE 특유의 URL구조를 워드프레스에서 사용할 수 있도록 변경해줍니다.

TunaLabs이 XE에서 사용하던 링크주소는 https://blog.tunalabs.io/7777 와 같은 형식을 기존 링크를 사용하던 사용자들의 불편함을 최소화 하기위해 워드프레스에서도 이 링크가 동작도록 설정을 변경합니다.

워드프레스 관리자 페이지 [Setttings – Permalinks] 에서 Custom Structure를 선택 후 /%post_id% 로 변경하여 설정합니다.

7. URL 리다이렉트

???: 인생의 좋은 경험이라 생각하고 검색엔진이 링크를 다시 색인할 때 까지 열심히 기다리는 수 밖에 없습니다.

마무리하며

지금까지 XpressEngine에서 워드프레스로 이전하는 방법을 알아보았습니다.

이 글이 XE에서 워드프레스로 이전하시고자하는 분께 도움되셨으면 좋겠습니다.

읽어주셔서 고맙습니다.


참조

4 comments

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.