isset ($ wp_filter [ 'all'])에서 "all"은 무엇입니까


10

저는 WordPress의 초보자입니다. XHTML 페이지를 생성하는 방법을 이해하려고합니다. 나는 그것이 함수라고 생각 do_action( 'hook-name' )하지만 isset( $wp_filter['all] )do_action 함수를 읽을 때 명령어의 이해에 갇혀 all있습니다. 단어의 의미가 무엇인지 이해하지 못하기 때문 입니다.

PHP 기능입니까 아니면 WordPress 기능입니까?

답변:


9

allWordPress 개발자가 다른 후크와 다르게 동작하도록 선택한 문자열입니다. 에 연결하면 다른 모든 후크에all 대해 콜백이 실행됩니다 .

의 출처를 살펴 보는 데 너무 많은 시간을 소비하지는 않을 것 do_action입니다.

  1. add_action( 'x', 'whatever' )whatever화재를 의미 합니다do_action( 'x' )
  2. add_action( 'all', 'whatever' )후크 이름에 관계없이 모든whatever 화재를 의미 합니다. do_action

5

조건부 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.0apply_filters 됩니다 @since 0.71(6 월 9 일 2003 년 발표). 그것이 왜 호출되는지 꽤 잘 설명해줍니다 $wp_filter. WordPress에서 필터가 처음 도입 되었기 때문에 가장 가능성이 높습니다. 나중에 그들은 행동을 소개했습니다.

@TheDeadMedic에서 말한 것을 바탕으로 ...

add_action ( 'all', 'whatever')는 후크 이름에 관계없이 모든 do_action에 대해 발생하는 모든 것을 의미합니다.

왜 우리에게 필요한 질문을 제기 $wp_filter['all']했습니까? 몇 가지 예만 있습니다. 향후 WordPress 버전에서 더 많은 시스템 내부 기능을 검사, 테스트 및 수행 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.