워드프레스 사이트에 접속 시(브라우저에서 url 호출 시), 워드프레스에서 일어나는 일련의 작업들을 간략히 정리한 가이드
첫 로딩 파일
사용자인 경우 : index.php (별로 하는 일 없음. 상수 정의하고 wp-blog-header.php를 로딩함)
어드민인 경우 : wp-admin/index.php
wp-blog-header.php
3가지 일을 함
- wp-load.php를 로딩 : wordpress 환경 전체를 셋업함
- wp() 함수 실행 : wp-includes/functions.php 안에 존재, query를 로딩함
- template-loader.php : 어떤 템플릿이 불려야 할지 결정함
wp-load.php
- wp-config.php를 체크해서 환경 설정을 계속함
- 마지막에 wp-settings.php 로딩하여, 실제 setup process를 진행함
wp-settings.php
아래 3개 파일 로딩함
- load.php (wp-includes 폴더 안에 존재) : 워드프레스가 필요한 첫 함수들 제공
- default-constants.php (또한 wp-includes 폴더 안에 존재): 상수들 정의
- version.php (이것도 wp-includes 폴더 안에 존재): 버전 정보 정의
functions.php, wp classes, plugin api
- compat.php : 옛날 php 버전 지원
- functions.php : 사이트 운영을 위한 기본적인 함수들
- class-wp.php : 쿼리 빌드
- class-wp-error.php : 에러 트래킹
- plugin.php : 액션, 필터 훅을 위해 필요한 함수들 제공
- mo.php : 번역 지원
Database class와 cache 설정
- require_wp_db() 와 wp_start_object_cache() 함수가 호출됨 (load.php 에서) : 데이터베이스 연결과 캐싱에 필요한 작업들 수행
default-filters.php
- 수많은 action과 filter 들을 설정함
multisite startup
- 멀티사이트가 설정된 경우, 필요한 작업들을 함
기본 로딩 마지막
- 워드프레스의 메인 함수 로딩이 끝났음
- 하지만 아직 워드프레스의 모든 기능이 사용 가능한 것은 아님(플러그인 등)
대부분의 워드프레스 로딩
- 긴 require 리스트를 로딩하면서 워드프레스의 코어 기능들을 위한 함수를 모두 로딩함
필수 플러그인 로딩
- 일반 플러그인 로딩 전, 필수 플러그인 로딩을 먼저 함
기본 taxonomies 와 post type
- Post, Page, Attachment, Category, Tag,… 등의 기본 taxonomies 와 post type 정의
Global object 생성
- wp, wp_query 등의 글로벌 object 생성하고 현재 쿼리 유지함
테마 선택
- 활성화된 테마를 체크하고, 테마의 functions.php 파일 로딩함
init hook
- init 훅에 걸린 액션들을 수행함
- 이 훅을 사용하는 플러그인과 테마들을 로딩함
wp_loaded hook
- 멀티사이트라면, wp_loaded 훅에 걸린 액션들을 수행 함
WP()
- 이 시점에는, 워드프레스의 모든 코어 함수들이 사용 가능함 (wp-includes/functions.php에 존재)
- url을 체크하고, 필요한 쿼리를 빌드하고 페이지에 필요한 데이터를 가져옴
template-loader.php
- 어떤 템플릿이 로딩되어야 하는지 체크함
- template_redirect 체크
- http head request 체크
- robot이나 rss-feed, trackback인지 체크
- 위의 셋 중 하나가 아니면, 가능한 템플릿 리스트를 훓으면서 조건에 맞는 템플릿 선택함 > 현재 테마에 템플릿이 있는지 체크 > 있으면 $template 변수에 저장됨
- 매칭되는게 없으면, 기본 index 템플릿이 변수에 저장됨
- 마지막 filter (template_include) 불리고 결과가 브라우저에 표시됨
참고
https://medium.com/@dendeffe/wordpress-loading-sequence-a-guided-tour-e077c7dbd119
'개발 > 워드프레스' 카테고리의 다른 글
[워드프레스] 사이트 최적화 (0) | 2022.07.02 |
---|