WordPress에 플러그인은 어떤 순서로로드됩니까?
그리고 특정 플러그인 폴더 내에서 로딩 순서는 무엇입니까?
답변
첫 번째 질문에 대한 답변 :
-
에서
wp-settings.php
, 워드 프레스 어떤 반드시 사용 플러그인 (옵션에서 플러그인에 대한 먼저 확인mu-plugins
폴더)로드 사람들을. -
그런 다음 멀티 사이트 설치를 실행하는 경우 네트워크 활성화 플러그인을 확인하고로드합니다.
-
그런 다음 데이터베이스 테이블 의
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_once
and 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);
}
비트는 복잡하지만 (알고 있음) 플러그인로드 순서에 관계없이 추가하기 전에 다른 플러그인의 후크가 생성되도록합니다.