워드 프레스는 플러그인 파일을 어떤 순서로로드합니까?


답변:


26

첫 번째 질문에 대한 답변 :

  1. 에서 wp-settings.php, 워드 프레스 어떤 반드시 사용 플러그인 (옵션에서 플러그인에 대한 먼저 확인 mu-plugins폴더)로드 사람들을.

  2. 그런 다음 멀티 사이트 설치를 실행하는 경우 네트워크 활성화 플러그인을 확인하고로드합니다.

  3. 그런 다음 데이터베이스 테이블 의 active_plugins항목을 보고 다른 모든 활성 플러그인을 확인하고 해당 플러그인을 wp_options반복합니다. 플러그인은 알파벳순으로 나열됩니다.

다음은 WordPress가 거의 모든 것을로드하는 순서입니다 : http://codex.wordpress.org/Action_Reference#Actions_Run_During_a_Typical_Request

문제는, 제대로 작성된 플러그인은 WordPress 후크를 사용하여 나중에 WordPress 시작시 특정 지점에 기능을 연결할 수 있기 때문에 각 개별 플러그인의로드 순서는 중요하지 않습니다. (올바로 작성된 플러그인은 함수와 클래스 앞에 접두사가 있으므로 충돌이 없습니다.)

플러그인 API에 대한 추가 정보 : http://codex.wordpress.org/Plugin_API/

두 번째 질문에 대한 답변 :

플러그인에 따라 다릅니다. WordPress는 플러그인에 하나의 파일 만로드합니다.이 파일은 일반적으로 이름이 지정 the-plugin-name.php되고 맨 위에 제목, 설명, 작성자 등이 포함되어 있습니다. require_onceand wp_enqueue_script및 notnot을 사용하여 나머지 파일을로드하는 것은 플러그인에 달려 있습니다.


따라서 플러그인을 만든 다음 나중에 원래 플러그인이 실행 된 후에 실행되어야하는 애드온 플러그인을 출시하면 어떻게 주문할 수 있습니까?
urok93

그것은 당신이하려는 일에 달려 있습니다. 그러나 일반적으로 add_action () 함수를 사용하여 특정 후크에서 실행되도록 각각을 설정하여 우선 순위를 설정할 수 있습니다. codex.wordpress.org/Function_Reference/add_action
SeventhSteel

@SeventhSteel 그러나 만약 플러그인이 다른 플러그인에 의해 생성 된 훅에 의존한다면 어떨까요? 하나의 플러그인 apply_filters()이 후크를 만드는 데 사용 하지만을 사용하는 플러그인보다 먼저 실행 add_filter()되면 여전히 작동합니까? 논리적으로, apply_filters()이미 해고 된 것 같습니다 add_filter(). 두 번째 플러그인 의 호출은 아무것도하지 않습니다. 플러그인으로 작성된 후크 만 사용할 때 플러그인이로드되는 순서는 중요합니까?
trusktr

중요한 것은 시간 apply_filters()이 지남에 따라로드 된 것 입니다. add_filter()전에 실행해야합니다 apply_filters(). add_filter()플러그인 파일에 있고 다른 기능이 아닌 경우 plugins_loaded일반적으로 필요하기 전에 발생 하는 후크에서 실행됩니다 apply_filters().
SeventhSteel

일반적인 시나리오는 다음에 내용을 추가하는 여러 플러그인이 있습니다. the_content모양 순서는 어떻게 결정됩니까?
Dan Knauss

9

모든 플러그인이 다음과 같이로드를 완료 한 후에 실행되는 플러그인에 '늦은 로딩'작업을 포함시키는 것이 유용하다는 것을 알았습니다.

add_action('plugins_loaded', 'my_late_loader');

그런 다음 my_late_loader 내에서 시작된 my_other_function 함수에서 다른 플러그인에 의해 정의 된 후크를 사용할 수있게하는 다른 모든 플러그인 후에 my_late_loader 함수가 시작됩니다.

/**
 * Late loading function for actions that must run after all plugins 
 * have loaded
 */
function my_late_loader(){
    add_action( 'some_hook', 'my_other_function', 10, 1);
}

비트는 복잡하지만 (알고 있음) 플러그인로드 순서에 관계없이 추가하기 전에 다른 플러그인의 후크가 생성되도록합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.