모두의매뉴얼
🚀

[WordPress] PHP 파일에서 워드프레스 핵심 기능만 사용하고 싶을 때 세팅 방법

📈8


워드프레스를 기반으로 제작된 웹사이트에서 루트 디렉토리에 심플한 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' );
?>

명령어가 두 줄 밖에 안되는데, 딱 봐도 첫 줄은 InitializingSHORT 하게(간단하게) 하라고 설정 해주는 부분이고, 두 번째 줄은 wp-load.php 파일을 불러오는 부분임을 알 수 있습니다.

정확히 이야기 하자면 두 번째 줄만 있어도 되지만, 우리가 사용할 페이지가 모든 워드프레스의 기능을 사용하기 위함이 아니기 때문에 SHORTINITTRUE 로 설정한다고 생각하면 됩니다.

한가지 주의 할 점은 require 에서 wp-load.php 파일의 경로를 잘 설정해주어야 한다는 것입니다. 저 같은 경우에는 직접 만들어 사용하려는 php 파일도 wp-load.php 파일과 같은 루트 디렉토리에 넣어 두었기 때문에, require( 'wp-load.php' ); 와 같은 방식으로 사용 했습니다.

이제 간단하게 페이지를 만들어서 $wpdb 를 사용할 수 있게 되었습니다.

끝.

    댓글 남기기

© 모두의매뉴얼 2024
🗝️