답변:
all
WordPress 개발자가 다른 후크와 다르게 동작하도록 선택한 문자열입니다. 에 연결하면 다른 모든 후크에all
대해 콜백이 실행됩니다 .
의 출처를 살펴 보는 데 너무 많은 시간을 소비하지는 않을 것 do_action
입니다.
add_action( 'x', 'whatever' )
whatever
화재를 의미 합니다do_action( 'x' )
add_action( 'all', 'whatever' )
후크 이름에 관계없이 모든whatever
화재를 의미 합니다. do_action
조건부 if ( isset($wp_filter['all']) ) {
당신은 이러한 후크 생성 기능에서 바로 찾을 수 있습니다 :
apply_filters
apply_filters_ref_array
do_action
do_action_ref_array
이들의 차이점은 전송 된 인수의 수입니다. 여러 인수, 즉 ref_array
단일 인수 가 필요합니다 . "action vs. filter"의 다른 차이점은 간단하고 action은 모든 기능 / 조치를 수행 할 수 있으며 필터 이름은 일반적으로 문자열 데이터를 가져 와서 필터링 된 데이터를 반환하는 함수를 위해 예약 된 것입니다.
자, 이것들은 훅을 만드는 방법입니다. 후크에는 이름이 있으며 동일한 후크 이름에 여러 함수 이름을 지정할 수 있습니다 (읽기 : 태그).
그러나 특정 후크와 관련된 모든 함수를 정의한 후에는 모든 후크 이름과 관련 함수 이름을 어딘가에 저장해야합니다. 이것이 우리 global $wp_filter
가 WordPress에 있는 이유 입니다. 그 변수를 출력하면 다음과 같은 것을 얻을 수 있습니다 ...
Array
(
[pre_term_name] => Array
(
[10] => Array
(
[sanitize_text_field] => Array
(
[function] => sanitize_text_field
[accepted_args] => 1
)
[wp_filter_kses] => Array
(
[function] => wp_filter_kses
[accepted_args] => 1
)
)
[30] => Array
(
[_wp_specialchars] => Array
(
[function] => _wp_specialchars
[accepted_args] => 1
)
)
)
이 변수의 이름에 대해서는 논쟁하지 마십시오. 개인적으로, 나는 $wp_hooks
이 이름이 사용되지 않았기 때문에 그것을 다르게 말할 것 입니다. 우리가 역사에서 돌아갈 경우, 우리가 찾을 수 do_action
있기 때문에 @since 1.2.0
과apply_filters
됩니다 @since 0.71
(6 월 9 일 2003 년 발표). 그것이 왜 호출되는지 꽤 잘 설명해줍니다 $wp_filter
. WordPress에서 필터가 처음 도입 되었기 때문에 가장 가능성이 높습니다. 나중에 그들은 행동을 소개했습니다.
@TheDeadMedic에서 말한 것을 바탕으로 ...
add_action ( 'all', 'whatever')는 후크 이름에 관계없이 모든 do_action에 대해 발생하는 모든 것을 의미합니다.
왜 우리에게 필요한 질문을 제기 $wp_filter['all']
했습니까? 몇 가지 예만 있습니다. 향후 WordPress 버전에서 더 많은 시스템 내부 기능을 검사, 테스트 및 수행 할 수 있습니다.