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.