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

WordPress에 플러그인은 어떤 순서로로드됩니까?

그리고 특정 플러그인 폴더 내에서 로딩 순서는 무엇입니까?



답변

첫 번째 질문에 대한 답변 :

  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을 사용하여 나머지 파일을로드하는 것은 플러그인에 달려 있습니다.


답변

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

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);
}

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