워드프레스에서 커스텀 폼 데이터 처리 예
개요
워드프레스에서 플러그인을 사용하지 않고 작성한 폼을 다루는 방법을 찾다가 알게 된 내용을 정리하고자 한다
워드프레스에서 커스텀 폼을 다룰 수 있는 플러그인이 많이 있지만 워드프레스를 좀더 잘 이해하기 위한 수단으로 직접 폼을 작성하고 폼데이터를 처리하는 서버측 코드까지 작성하기로 한다
워드프레스에서 만든 페이지 템플릿을 편집하여 폼을 작성하고 action=../form-proc.php 으로 설정하여 직접 폼처리 로직이 호출되도록 하였다. 이 때 중요한 점은 form-proc.php 파일은 워드프레스가 설치된 루트 폴더에 저장해야 한다는 것이다
테스트 환경
Autoset 9
WordPress 4.4
http://localhost/wordpress/form-test 으로 접속되는 템플릿 페이지 안에 다음과 같이 폼을 작성한다
<form action="../form_proc.php" method="post"> 메시지 <input type="text" name="msg" value="안녕하세요?"> <button type="submit">전 송</button> </form>
워드프레스가 설치된 루트 폴더에 다음과 같이 폼처리 코드를 작성한다
C:/Autoset9/public_html/wordpress/form-proc.php
<?php session_start(); $_SESSION['msg'] = $_POST['msg']; $myfile = fopen("test.txt", "w") or die("Unable to open file!"); $txt = $_POST['msg']; fwrite($myfile, $txt); fclose($myfile); header("Location: http://127.0.0.1/wordpress/form-result/"); ?>
위의 코드에서는 폼으로부터 전달된 값을 세션과 파일에 저장해 본 것이고 특별한 의미는 없다.