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


답변:


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.