워드프레스에서 직접 DB 다루기

워드프레스 홈페이지 작업 중에, 사용자로부터 직접 데이터를 입력 받아 DB에 저장하고 다룰 일이 생겼다. 보통은 입력 폼으로 유료 플러그인이지만 Quform의 기능이 워낙 좋아서 사용하고 있었으나, 결제 모듈과 연동할 때는 Quform을 사용할 수 없어 직접 데이터를 테이블에 넣어야 할 일이 생겼다.

방법을 찾아서 폼에 데이터를 입력받아 데이터를 삽입했으나 데이터가 DB에 저장되지 않았다. 구글에서 찾은 방법은 아래 코드와 같다.

조금씩 이야기하는 게 달랐지만 개인적으로는 위에  3파일을 임포트를 했다. 그리고 전역변수인 $wp_db에 insert 메서드를 통해서 데이터를 입력하면 된다. insert 메서드는 첫 번째 매개변수로 테이블명을 받고, 두 번째 매개변수로 DB에 삽입할 데이터 배열을 받는다.

이대로 코드를 구성했는데 실패. 반나절 삽질 가운데 얻은 정답은 3개의 php 파일을 삽입하는 코드를 소스에 최상단에 위치시키니까 해결되었다.

사실 아직도 왜 꼭 소스 앞부분에 두어야 하는지에 대한 정확한 이유를 모르겠다. 이 코드가 삽입되는 부분이 외부 결제모듈 코드와 섞여 있어서  있겠다고 추측을 해본다.

마지막으로 코드 상에서 DB에 입력된 데이터를 워드프레스 상에서 확인할 때는 database browser 플러그인을 활용하면 된다. 이 플러그인은 워드프레스 내에 DB 테이블을 손 쉽게 확인하고 XML, CSV형태로 데이터를 저장할 수도 있다.

기타 자세한 wp_db의 사용법은 코덱스의 매뉴얼을 참조하면 된다.

http://codex.wordpress.org/Class_Reference/wpdb