액션/필터 레퍼런스

코어 동작 어딘가에 적절히 콜백을 덧대 자신이 원하는 동작을 만들어내는 것, 이것이 플러그인 개발의 핵심이 아닐까 한다. 그러려면 코어가 어떤 흐름으로 동작하는지, 어떤 액션과 필터를 제공하는지 알아두는 것은 자명하다.

그런 흐름을 잘 정리해 둔 문서가 바로 이 액션 레퍼런스필터 레퍼런스이다. 모든 필터와 액션을 담은 것은 아니겠지만, 리퀘스트를 받아 리스폰스를 내기까지의 순서를 따라 잘 나열되어 있다. 가장 흔히 사용되는 대표적인 필터와 액션 흐름을 살펴볼 수 있는 좋은 문서이다.

프론트 기준으로 코어는 아주 대략적으로 이런 흐름으로 진행된다. 이 흐름을 생각하면서 훅을 훑어보면 코어를 이해하는데 많은 도움이 될 것이다.

  • 설정 파일 로드, 필수 파일 로드, 데이터베이스 설정.
  • MU 플러그인 로드.
  • 플러그인 로드.
  • 테마 로드.
  • 로그인된 사용자 설정.
  • 프론트의 주소에 따라 메인 쿼리 준비.
  • HTTP 헤더 전송.
  • 메인 쿼리 – 데이터베이스 쿼리.
  • 메인 쿼리의 종류에 따라 어떤 프론트 템플릿을 불러올지 결정.
  • 템플릿 인클루드.
    • 템플릿 헤더 출력.
    • 템플릿 본문과 설정에 따라 메뉴, 사이드바 출력.
    • 템플릿 푸터 출력.
  • 어드민 바 출력.
  • 종료.

이 대략적인 흐름이 중요한 이유가 있다. 이 흐름을 모르면 도대체 어떤 때 어떤 동작을 넣어야 하는지 이해하기 어려울 뿐만 아니라 원하는 동작을 제때 코어에 전달하지 못할 수도 있기 때문이다. add_action을 넣는 시점은 do_action이 일어나기 이전에 이뤄져야 한다. 예를 들어 푸터 출력 진행중에 ‘plugins_loaded’ 액션을 넣어도 절대 동작하지 않는다. 왜냐면 ‘plugins_loaded’ 액션은 그 이전에 끝났기 때문이다. 이런 워드프레스 동작 라이프사이클은 알아둘수록 도움이 된다.

댓글 남기기