WordPress 파일 외부에서 WordPress 기능을 사용하는 올바른 방법은 무엇입니까?


59

WordPress 파일 외부에서 WordPress 기능을 초기화하는 약 2 가지 방법을 읽었으므로 WordPress 블로그 외부의 모든 페이지 또는 웹 사이트에서 이러한 기능을 사용할 수 있습니다.

이 두 가지 방법 중 올바른 방법은 무엇입니까? 두 방법이 모두 올바른 경우 각 방법의 사용 사례는 무엇입니까? 한 가지 방법을 사용하는 것과 다른 방법을 사용하는 것의 차이점은 무엇입니까?

방법 1 :

<?php 
    define('WP_USE_THEMES', false);
    require('./wp-blog-header.php');
?>

방법 2 :

<?php 
    define('WP_USE_THEMES', false);
    require('./wp-load.php');
?>

"WP 외부"를 사용하려는 WP 기능은 무엇입니까? 이러한 방법 중 하나는 여전히 WP 환경을로드하지만 (테마 지원은 없지만) 여전히 WP 내부에서 함수를 호출합니다.
EAMann

두 가지 방법의 차이점을 이해하려고합니다. 내가 할 일은 워드 프레스 테마를 지원 스크립트와 통합하는 것입니다. 따라서 머리글, 바닥 글 및 wordpress의 루프와 위젯 및 기타 플러그인에 대한 지원이 필요합니다.
alhoseany

나는 이것이 당신이하고 싶은 방법인지 의심합니다 ... 워드 프레스 자체를 부트 스트랩하는 것보다 더 나은 해결책이 있습니다.
EAMann

나는 제안을 위해 넓게 열려 있고, 최선의 방법으로 일을 찾고 있습니까? WordPress 테마를 외부 웹 응용 프로그램과 통합하는 가장 좋은 방법은 무엇입니까?
alhoseany

답변:


58

파일간에 약간의 차이가 있습니다. WordPress 페이지를 볼 때 첫 번째 파일은입니다 index.php. 그리고 그것은 본질적으로 "방법 1"입니다.

define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */
require ('./wp-blog-header.php');

블로그 헤더 파일 (나머지 WordPress를 큐에 대기)은 wp-load.php직접 로드 되어 WordPress 자체를 시작합니다. 여기 대부분이 있습니다 wp-blog-header.php:

if ( !isset($wp_did_header) ) {

    $wp_did_header = true;

    require_once( dirname(__FILE__) . '/wp-load.php' );

    wp();

    require_once( ABSPATH . WPINC . '/template-loader.php' );

}

두 방법의 차이점은 ...로드되는 것입니다.

방법 1은 테마를 끄는 것을 제외하고 WordPress가 직접로드하는 방식입니다. 따라서 모든 WordPress 가 필요하고 모든 기본 후크 / 작업을 실행하려면 해당 경로로 이동하십시오.

방법 2는 한 단계 더 발전한 것입니다. 모든 WordPress를로드하지만 wp()템플릿 로더 (테마에서 사용)를 호출 하거나 호출 하지 않습니다 . 방법 2는 약간 가벼울 것이지만 동일한 기능을 제공해야합니다.


3
이 모든 파일을 매핑하는 다이어그램이나 무언가가 있습니까? 오래 전에 봤지만 찾을 수 없습니다.
ninja08

17

귀하의 질문에서 방법 2 :

<?php 
define( 'WP_USE_THEMES', false ); // Don't load theme support functionality
require( './wp-load.php' );

wp-load.php워드 프레스의 모든 기능에 대한 액세스입니다. 첫 번째 줄은 테마 파일을로드하지 않도록 WordPress에 지시합니다. 파일이 요구 사항에 필요할 수 있습니다. 그런 다음 줄을 제거하십시오.


1
그 첫 줄은 무엇을 의미합니까?
Sagive SEO 2012

8
첫 번째 줄은 모든 테마 지원 기능을로드하지 않도록 WordPress에 지시합니다. 기본적으로 더 적은 파일을로드하십시오.
EAMann

첫 번째 줄은 첫 번째 방법에만 필요합니까?
mcont

4

wp-blog-header.php는 헤더 상태를 첨부하고 http 상태 코드 404를 반환합니다

wp-load.php는하지 않습니다

http 상태 코드를 확인하여 ajax를 사용할 때 참고할 때 유용합니다.


2

때때로 테마의 functions.php를로드하면 문제가 발생할 수 있습니다. 내 다른 페이지의 HTML을 깨뜨리고있었습니다. 이것이 내가 한 일이며 내 문제를 해결했습니다.

define('STYLESHEETPATH', '');
define('TEMPLATEPATH', '');
require_once(RAIZ_WORDPRESS."/wp-load.php");

0

ninja

xDebug php extension을 사용하여 스크립트를 분석 할 수 있습니다.

단지 수 있도록 ;xdebug.profiler_enable = 1당신에 php.ini제거하여 파일 ;라인의 처음부터이 다시 시작 아파치 서버 후 귀하의 워드 프레스 사이트 ...이 파일 ..open 당신의 XAMPP 서버의 tmp 디렉토리에 생성 이제 파일 실행 WincachGrind의 응용 프로그램을.

이제 스크립트 맵을 볼 수 있습니다

WincacheGrind 간단한 워드 프레스 분석


ninja08 아래의 코멘트에 이것을 추가해야합니다. 이것은 이제 잘못된 답변입니다.
alhoseany

2
@alhoseany yes..i 이제는 ...하지만 나는 충분한 평판을 얻지 못했습니다 ... 그리고 나는 이것을하기로 결정합니다.
Mostafa
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.