제한 및 성능 불이익이 없습니다. 이유를 이해하려면 WP 에코 시스템에 모든 후크가 저장되는 방식을 이해해야합니다.
우선 모든 후크가 저장되는 위치와 수행 방법을 이해해야합니다. 필터 및 조치에 대한 모든 후크는이라는 전역 변수에 저장됩니다 wp_filter
. 예 예 조치 후크도이 변수에 저장됩니다. 이 변수는 연관된 배열입니다. 여기서 key는 조치 또는 필터의 이름이고 value는 다른 연관 배열입니다. 예를 들어 'init'액션을 살펴 보자.이 단계에서 다음과 같은 구조를 볼 수있다.
$wp_filter = array(
'init' => array(...),
);
이 하위 배열에는 숫자 키와 값이 배열로 있습니다. 숫자 키는 우리의 우선 순위입니다. 숫자 키와 관련된 배열에는 우선 순위가 동일한 후크 목록이 포함됩니다. 우리가 전화를한다면 add_action( 'init', 'wpse8170_my_first_init', 20 )
, 다음 전화를 add_action( 'init', 'wpse8170_my_second_init', 20 )
마지막으로 전화를 add_action( 'init', 'wpse8170_my_third_init', 10 )
, 우리의 예는 다음과 같이 표시됩니다
$wp_filter = array(
'init' => array(
20 => array(
'wpse8170_my_first_init' => array(
'accepted_args' => 1, // the number of accepted arguments by your hook
'function' => 'wpse8170_my_first_init', // callback function
),
'wpse8170_my_second_init' => array(...),
),
10 => array(
'wpse8170_my_third_init' => array(...),
),
),
);
이제 init
액션이 트리거 되면 모든 후크가 ksort
함수 사용법에 따라 정렬되며 배열은 다음과 같습니다.
array(
10 => array(
'wpse8170_my_third_init' => array(...),
),
20 => array(
'wpse8170_my_first_init' => array(
'accepted_args' => 1, // the number of accepted arguments by your hook
'function' => 'wpse8170_my_first_init', // callback function
),
'wpse8170_my_second_init' => array(...),
),
),
그리고이 후크에서 모든 후크가 실행됩니다 : 먼저 'wpse8170_my_third_init'
, 'wpse8170_my_first_init'
마지막으로 'wpse8170_my_second_init'
.
따라서 제한 및 위약금이 없음을 알 수 있으며 PHP 환경에서 연관된 배열의 키로 허용되는 모든 값을 사용할 수 있습니다.