[WordPress] PHP 파일에서 워드프레스 핵심 기능만 사용하고 싶을 때 세팅 방법
워드프레스를 기반으로 제작된 웹사이트에서 루트 디렉토리에 심플한 php 파일을 하나 만들고, $wpdb 를 이용해서 간단하게 데이터베이스에 자료를 넣고, 조회하려고 했는데..
아무런 조치도 취하지 않고 php 파일에서 바로 $wpdb
를 사용하려 했더니,
Fatal error: Uncaught Error: Call to a member function get_results() on null in /hosting/****/html/****.php:5 Stack trace: #0 {main} thrown in /hosting/****/html/****.php on line 5
어쩌면 당연한거지만 오류를 뿜어 내었습니다.
당연히 워드프레스에서 만들어둔 기능을 쓰려면 워드프레스 자원을 불러온 상태에서 사용해야겠지요?
그래서 조금 찾아 보니까, stackOverflow 의 어느 형님이 같은 고민을 하고 있었고, 다른 형님이 명쾌하게 답변을 달아 주셨습니다.
방법은 생각보다 꽤 간단합니다. 바로 아래와 같이 워드프레스 자원은 미리 로드 해주고, 그 다음 원하는 기능을 사용하면 된다는 것이죠.
<?
define( 'SHORTINIT', true );
require( '/path/to/wp-load.php' );
?>
명령어가 두 줄 밖에 안되는데, 딱 봐도 첫 줄은 Initializing
을 SHORT
하게(간단하게) 하라고 설정 해주는 부분이고, 두 번째 줄은 wp-load.php
파일을 불러오는 부분임을 알 수 있습니다.
정확히 이야기 하자면 두 번째 줄만 있어도 되지만, 우리가 사용할 페이지가 모든 워드프레스의 기능을 사용하기 위함이 아니기 때문에 SHORTINIT
을 TRUE
로 설정한다고 생각하면 됩니다.
한가지 주의 할 점은 require
에서 wp-load.php
파일의 경로를 잘 설정해주어야 한다는 것입니다. 저 같은 경우에는 직접 만들어 사용하려는 php
파일도 wp-load.php
파일과 같은 루트 디렉토리에 넣어 두었기 때문에, require( 'wp-load.php' );
와 같은 방식으로 사용 했습니다.
이제 간단하게 페이지를 만들어서 $wpdb 를 사용할 수 있게 되었습니다.
끝.
댓글 남기기