코어 동작 어딘가에 적절히 콜백을 덧대 자신이 원하는 동작을 만들어내는 것, 이것이 플러그인 개발의 핵심이 아닐까 한다. 그러려면 코어가 어떤 흐름으로 동작하는지, 어떤 액션과 필터를 제공하는지 알아두는 것은 자명하다.
그런 흐름을 잘 정리해 둔 문서가 바로 이 액션 레퍼런스와 필터 레퍼런스이다. 모든 필터와 액션을 담은 것은 아니겠지만, 리퀘스트를 받아 리스폰스를 내기까지의 순서를 따라 잘 나열되어 있다. 가장 흔히 사용되는 대표적인 필터와 액션 흐름을 살펴볼 수 있는 좋은 문서이다.
프론트 기준으로 코어는 아주 대략적으로 이런 흐름으로 진행된다. 이 흐름을 생각하면서 훅을 훑어보면 코어를 이해하는데 많은 도움이 될 것이다.
- 설정 파일 로드, 필수 파일 로드, 데이터베이스 설정.
- MU 플러그인 로드.
- 플러그인 로드.
- 테마 로드.
- 로그인된 사용자 설정.
- 프론트의 주소에 따라 메인 쿼리 준비.
- HTTP 헤더 전송.
- 메인 쿼리 – 데이터베이스 쿼리.
- 메인 쿼리의 종류에 따라 어떤 프론트 템플릿을 불러올지 결정.
- 템플릿 인클루드.
- 템플릿 헤더 출력.
- 템플릿 본문과 설정에 따라 메뉴, 사이드바 출력.
- 템플릿 푸터 출력.
- 어드민 바 출력.
- 종료.
이 대략적인 흐름이 중요한 이유가 있다. 이 흐름을 모르면 도대체 어떤 때 어떤 동작을 넣어야 하는지 이해하기 어려울 뿐만 아니라 원하는 동작을 제때 코어에 전달하지 못할 수도 있기 때문이다. add_action을 넣는 시점은 do_action이 일어나기 이전에 이뤄져야 한다. 예를 들어 푸터 출력 진행중에 ‘plugins_loaded’ 액션을 넣어도 절대 동작하지 않는다. 왜냐면 ‘plugins_loaded’ 액션은 그 이전에 끝났기 때문이다. 이런 워드프레스 동작 라이프사이클은 알아둘수록 도움이 된다.