답변:
일반적으로 : 그렇습니다. 전용 후크가 자신의 코드를 시작할 때까지 기다리십시오. 전역 네임 스페이스에 객체 인스턴스를 던지지 마십시오 . 그러나 init
거의 필요하지 않습니다.
당신은 가능한 한 늦게 연결합니다. 첫 번째 코드가 실행되는 wp_head
경우 이전 후크를 사용하지 마십시오. 당신은 할 수 후크 계단식 :
add_action( 'wp_head', 'first_callback' );
function first_callback()
{
// do something
// then
add_action( 'wp_footer', 'second_callback' );
}
init
후크에 관하여 : wp_loaded
대신 사용하십시오 . 그것은 호출 된 init
이후 ms_site_check()
에 실행됩니다 . 이렇게하면 다중 사이트 설치의 잘못된 하위 사이트에서 플러그인을 실행하지 않아도됩니다. 다른 모든 것은 동일합니다.
다음과 같은 이유로이 방법 의 큰 이점을 볼 수 없습니다 .
add_action
와 add_filter
함수는 전역 변수에 항목 추가 $wp_filter
모든 필터와 행동을 보유하고 있습니다. 출처를 참조하십시오 . 함수를 호출하지 않습니다. 코드는 and 가 호출 될 때 (적절한 후크 이름으로) 실행 되며 , 이러한 후크가 있어야하는 위치에서 매우 늦게 발생 합니다.do_action
apply_filters
그렇게하면 전역 변수 $wp_filter
가 커지면서 더 많은 메모리가 필요 해질 것이라고 말할 수 있습니다 . 그러나 새로운 기능을 만드는데도 같은 문제가 있다고 생각합니다.
하나의 기능에 모든 것을 넣으면 테마 / 플러그인의 모든 파일에있는 모든 후크를 기억해야합니다. 당신 은 이런 식으로하지 않을 것입니다 :
header.php
: 헤더에서 발생하는 일에 대한 후크 및 콜백 기능 추가 (메뉴, 스크립트 등록 등)content.php
: 컨텐츠 필터링을위한 후크 및 콜백 함수 추가admin-menu.php
: 관리 메뉴를 추가하기위한 후크 및 콜백 기능 추가(해당 파일이 테마 / 플러그인에 있다고 가정)
그 대신 다음을 수행해야합니다.
header.php
, content.php
,admin-menu.php
=> 그러면 header.php
파일 의 내용을 볼 때 어떤 일이 발생하는지 알기가 어렵습니다 . 이러한 콜백이 언제 발생하는지 알기 위해 검색해야합니다.
테마 / 플러그인에 여러 클래스가있을 때의 상황을 생각해보십시오. 모든 수업의 모든 고리를 한 곳에 두십니까? 또는 각 클래스에는 모든 후크를 보유하는 랩퍼 함수가 있습니까? 너무 중복입니다!
이러한 이유로, 나는 그것이 개인적인 스타일이라고 생각합니다 :). 하이브리드와 같은 일부 프레임 워크가 말한 것을 봅니다. 때로는 그 프레임 워크를 파고 들기가 어렵습니다!
wp_loaded
및 MS 정보