2013-03-08 4 views
34

어떻게 사용자 정의 .php 파일에 Wordpress 함수를 포함시킬 수 있습니까?Wordpress 함수를 사용자 정의 .php 파일에 포함시키는 방법은 무엇입니까?

세부 사항 : 내 테마 (생성자) 보고서 아래에 디렉터리가 있습니다. 여기에는 다운로드를 위해 DOMPDF를 사용하여 사이트의 데이터로부터 보고서를 생성하는 .php 파일이 들어 있습니다. 이를 위해 Wordpress 엔진이 제공하는 기능 (예 : get_the_author_meta('user_firstname', $user_id))을 사용하고 싶습니다. 내가 이것을 사용하면 다음과 같은 오류가 발생합니다 :

Fatal error: Call to undefined function get_the_author_meta() in ROOT/public_html/wp-content/themes/constructor/reports/testreport.php on line 15

나는 wp-blog-header.php를 포함시켜야한다고 믿었습니다. 나는 require_once("../../../../wp-blog-header.php");을 사용합니다. 이것으로 나는 다음과 같은 404 오류 얻을 :. ../../../ WP-블로그 내 require_once를 (: 올바른 경로에

No webpage was found for the web address: ROOT/wp-content/themes/constructor/reports/testreport.php

합니다 (이 필요한 점을 내가 바이올린, 내가 경고를 얻을 header.php) : 스트림을 열지 못했습니다 ... 경로가 정확해야합니다.)

내가 간과하는 것이 있습니까? 왜이 wp 파일을 포함 할 수 없습니까? wp 함수를 포함하는 올바른 방법은 무엇입니까? 도움을

감사합니다, Sziro

답변

62

당신이 올바른 궤도에있어. 대신이 시도 :

require($_SERVER['DOCUMENT_ROOT'].'/wp-load.php'); 
+1

감사합니다. 그 해결책입니다! – Sziro

+2

이것은 괜찮은 해결책이지만 설치되어있는 모든 플러그인과 테마로 모든 wp 사이트를로드합니다 ...이 yagni 원칙 위반 http://en.wikipedia.org/wiki/You_aren't_gonna_need_it – HMagdy

+2

로드하는 중일 수 있습니다. 당신은 원래의 질문을 읽는다면 그는 외부 PHP 파일에서 그것을로드하는 방법을 묻고 있었다. – seanbreeden

2
require_once(dirname(__FILE__) . '/options.php'); 

이 워드 프레스는 문서 루트라면 점 것없이 워드 프레스

+3

그는 Wordpress에 파일을 포함시키는 방법을 묻지 않았습니다. 그는 Wordpress를 외부 PHP 파일에서로드하려고했습니다. 당신의 해결책은 효과가 없을 것입니다. – seanbreeden

+0

그는 내가 확신한다는 것을 알고 있습니다. 그는 토론에 더해 가고 있습니다. 이제이 메소드 + wp-load.php를 사용하겠습니다.;) –

11

더 전문적인 방법으로 파일을 포함하는 더 좋은 방법입니다 만약 누군가 새로운 PHP 버전을 설치했다면 (ver> = 5.5.x) WordPress 웹 사이트 디렉토리의 루트 스크립트에서 아래 코드를 시도 할 수 있습니다 :

<?php 
define("WP_ROOT", __DIR__); 
define("DS", DIRECTORY_SEPARATOR); 
require_once WP_ROOT . DS . "wp-load.php"; 

또는

<?php 
define("WP_ROOT", __DIR__); 
define("DS", DIRECTORY_SEPARATOR); 
require_once WP_ROOT . DS . "wp-blog-header.php"; 

나는이 좀 더 직접적이고 깨끗한 접근하고 ..에 의해 diretories을 슬래시를 추가하고 수동 변경을 포함하지 않는 것 같아요.

희망이 있으면 도움이됩니다.

+4

WordPress가 문서 루트에있을 필요는 없습니다. –

+0

또한 슬래시를 위해 document_root를 rtrim해야합니다. –

0

:

require_once("../../../../wp-load.php"); 
관련 문제