STAGE 13 · Lv.61
훅(Hook) 시스템 - 액션과 필터
WordPress의 핵심인 훅 시스템을 깊이 있게 학습합니다. add_action, add_filter, remove_action, 우선순위, 인자 수, 커스텀 훅 생성, do_action, apply_filters를 마스터합니다.
WordPress 훅 시스템의 핵심 개념
훅이란 무엇인가?
WordPress의 훅(Hook) 시스템은 이벤트 기반 프로그래밍의 핵심입니다. 훅을 통해 WordPress 코어, 테마, 플러그인의 동작을 수정하거나 확장할 수 있습니다. WordPress 코어에는 약 2,500개 이상의 훅이 존재하며, 플러그인과 테마가 추가하는 커스텀 훅까지 포함하면 훨씬 많습니다.
훅은 크게 두 가지 종류로 나뉩니다:
액션(Action): 특정 시점에 코드를 "실행"합니다. 반환값이 없습니다. 예: 포스트가 저장될 때 이메일 보내기, 페이지 로드 시 스타일시트 추가하기.
필터(Filter): 데이터를 "변환"하여 반환합니다. 반드시 값을 반환해야 합니다. 예: 포스트 제목 수정하기, 발췌문 길이 변경하기, 로그인 URL 변경하기.
Action
"이 시점에 이것을 실행해라"
Filter
"이 데이터를 이렇게 바꿔라"
WP 코어/플러그인이
do_action() 호출
do_action() 호출
등록된 콜백을
우선순위 순 정렬
우선순위 순 정렬
각 콜백을
순서대로 실행
순서대로 실행
Action: 실행 완료
Filter: 값 반환
Filter: 값 반환
add_action() 완전 정복
add_action()의 모든 매개변수
add_action()은 특정 액션 훅에 콜백 함수를 등록하는 함수입니다. WordPress가 해당 액션을 실행(do_action)할 때 등록된 콜백이 호출됩니다.
// add_action() 전체 시그니처
add_action(
$hook_name, // (string) 훅 이름
$callback, // (callable) 실행할 콜백 함수
$priority = 10, // (int) 우선순위 (낮을수록 먼저 실행)
$accepted_args = 1 // (int) 콜백이 받을 인자 수
);
다양한 콜백 형태
WordPress 훅에는 여러 형태의 콜백을 등록할 수 있습니다. 각각의 장단점을 알아봅시다.
// 1. 일반 함수
function my_custom_init() {
// 초기화 코드
}
add_action('init', 'my_custom_init');
// 2. 익명 함수 (클로저)
add_action('wp_head', function() {
echo '<meta name="generator" content="My Plugin">';
});
// 3. 클래스 메서드 (인스턴스)
class My_Plugin {
public function __construct() {
add_action('init', [$this, 'register_post_type']);
}
public function register_post_type() {
// CPT 등록
}
}
// 4. 정적 메서드
class My_Utils {
public static function cleanup() {
// 정리 코드
}
}
add_action('wp_footer', ['My_Utils', 'cleanup']);
// 5. Invokable 클래스 (__invoke 매직 메서드)
class My_Handler {
public function __invoke($content) {
return $content . '<p>추가 콘텐츠</p>';
}
}
add_filter('the_content', new My_Handler());
익명 함수의 함정
익명 함수(클로저)로 등록한 훅은 나중에 remove_action()으로 제거할 수 없습니다. 제거가 필요한 훅이라면 반드시 이름이 있는 함수나 클래스 메서드를 사용하세요. 이 점은 다른 개발자가 여러분의 플러그인을 커스터마이즈할 때 중요합니다.
🔒
여기까지는 미리보기입니다
훅(Hook) 시스템 - 액션과 필터
무료 가입하면 이어서 볼 수 있고, 강의를 완료할 때마다 XP와 레벨이 쌓입니다.
Google로 3초 만에 시작 →🧵 Threads로 시작무료 공개 강의 둘러보기 (Lv.1~3)무료 가입하면 이어서 볼 수 있고, 강의를 완료할 때마다 XP와 레벨이 쌓입니다.