Большинство пользователей не задумывается о процессах, происходящих под капотом Вордпресс. WPBeginner на днях представил отличную инфографику, в которой пошагово отражен весь процесс генерации страницы в Вордпресс.
Инфографика будет полезна и рядовым пользователям, и разработчикам, которым поможет лучше понять принцип работы Вордпресс.
-
Загрузка wp-config.php
В первую очередь всегда загружается файл конфигурации Вордпресс — wp-config.php, в котором заданы все глобальные переменные и содержится информация о подключении к базе данных. -
Установка дефолтных констант
Устанавливаются лимиты на размеры загружаемых файлов, определяется местоположение директории загрузки и т.д. -
Загрузка advanced-cache.php
Используется популярными плагинами кеширования. -
Загрузка wp-content/db.php
Используется некоторыми плагинами повышения производительности для уменьшения количества запросов к БД. -
Подключение к БД
Подключение к серверу MySQL и выбор базы данных. Если подключиться не получится, вернется ошибка подключения. -
Загрузка object-cache.php или wp-includes/cache.php
Если отсутствует файл object-cache.php, загрузится дефолтный wp-includes/cache.php. -
Загрузка wp-content/sunrise.php
Поиск и загрузка файла sunrise.php в режиме мультисайта. -
Загрузка локализационной библиотеки
Загрузка системы локализации l10n.php, которая загружает переводы, устанавливает локализации и т.д. -
Загрузка мультисайтовых плагинов
Срабатывает только в режиме мультисайта. -
Запуск «muplugins_loaded»
Вызывается после загрузки обязательных и сетевых плагинов. -
Загрузка активных плагинов
Загрузка всех плагинов, указанных в active_plugins в таблице опций wp_options. -
Загрузка pluggable.php
Файл pluggable.php содержит функции, которые можно переопределить плагинами Вордпресс. -
Запуск «plugins_loaded»
Выполнение хуков после загрузки всех активных плагинов. -
Загрузка Rewrite Rules
Инициализация ЧПУ. -
Загрузка $wp_query, $wp_rewrite, $wp
Загрузка глобальных классов. -
Запуск «setup_theme»
Выполнение действий перед загрузкой темы. -
Загрузка functions.php дочерней темы
Определяются функции, заданные в теме. Загружается только если активна дочерняя тема, в противном случае загрузится functions.php активной темы. -
Загрузка functions.php родительской темы
Если используется дочерняя тема, загрузится functions.php родительской темы. -
Запуск «after_setup_theme»
Выполнение действий после загрузки темы. -
Настройка текущего пользователя
Загружается текущий пользовательский объект, в соответствии с которым будет обрабатываться запрос. -
Запуск «init»
Вся важная информация загружена, теперь выполняется весь сторонний код. -
Запуск «widget_init»
Регистрация виджетов. -
Выполнение wp()
Вызывается функция wp(), находящаяся в wp-includes/functions.php, которая задает глобальные запросы $wp, $wp_query, $wp_the_query and then calls $wp->main. -
Парсинг запроса
Теперь Вордпресс получил всю информацию для анализа запроса пользователя, проверяются Rewrite Rules, запускаются фильтры переменных запроса, запрашиваются хуки и отправляется запрос заголовка. -
Выполнение запроса
Если контент не соответствует запросу, устанавливается is_404, загрузка продолжится если все в порядке. Далее запускается WP_Query->get_posts(), вызывается DO_ACTION_REF_ARRAY ‘pre_get_posts’ с объектом WP_Query, запускается apply_filters для очистки запроса и выполнения окончательных проверок. После этого из базы данных извлекается запрашиваемая запись и к ней применяются фильтры posts_results и the_posts. После всех этих действий Вордпресс возвращает запись. -
Запуск «template_redirect»
Этот хук выполняется перед выбором загрузки шаблона. -
Загрузка шаблона фида
Загружается шаблон для RSS-ленты. -
Загрузка шаблона
Поиск и загрузка шаблона запрашиваемой страницы. -
Запуск «shutdown»
Последнее действие Вордпресс перед завершением выполнения PHP-кода.
Весь код исполнен, страница сгенерирована и отдана в виде HTML, CSS и JavaScript, из которых браузер сформирует привычную веб-страницу. Весь процесс обычно занимает долю секунды.