LOGO
    • d
    • n

WP | Процесс генерации страницы Wordpress | 29 шагов

Большинство пользователей не задумывается о процессах, происходящих под капотом Вордпресс. WPBeginner на днях представил отличную инфографику, в которой пошагово отражен весь процесс генерации страницы в Вордпресс.

Инфографика будет полезна и рядовым пользователям, и разработчикам, которым поможет лучше понять принцип работы Вордпресс.

  1. Загрузка wp-config.php
    В первую очередь всегда загружается файл конфигурации Вордпресс — wp-config.php, в котором заданы все глобальные переменные и содержится информация о подключении к базе данных.

  2. Установка дефолтных констант
    Устанавливаются лимиты на размеры загружаемых файлов, определяется местоположение директории загрузки и т.д.

  3. Загрузка advanced-cache.php
    Используется популярными плагинами кеширования.

  4. Загрузка wp-content/db.php
    Используется некоторыми плагинами повышения производительности для уменьшения количества запросов к БД.

  5. Подключение к БД
    Подключение к серверу MySQL и выбор базы данных. Если подключиться не получится, вернется ошибка подключения.

  6. Загрузка object-cache.php или wp-includes/cache.php
    Если отсутствует файл object-cache.php, загрузится дефолтный wp-includes/cache.php.

  7. Загрузка wp-content/sunrise.php
    Поиск и загрузка файла sunrise.php в режиме мультисайта.

  8. Загрузка локализационной библиотеки
    Загрузка системы локализации l10n.php, которая загружает переводы, устанавливает локализации и т.д.

  9. Загрузка мультисайтовых плагинов
    Срабатывает только в режиме мультисайта.

  10. Запуск «muplugins_loaded»
    Вызывается после загрузки обязательных и сетевых плагинов.

  11. Загрузка активных плагинов
    Загрузка всех плагинов, указанных в active_plugins в таблице опций wp_options.

  12. Загрузка pluggable.php
    Файл pluggable.php содержит функции, которые можно переопределить плагинами Вордпресс.

  13. Запуск «plugins_loaded»
    Выполнение хуков после загрузки всех активных плагинов.

  14. Загрузка Rewrite Rules
    Инициализация ЧПУ.

  15. Загрузка $wp_query, $wp_rewrite, $wp
    Загрузка глобальных классов.

  16. Запуск «setup_theme»
    Выполнение действий перед загрузкой темы.

  17. Загрузка functions.php дочерней темы
    Определяются функции, заданные в теме. Загружается только если активна дочерняя тема, в противном случае загрузится functions.php активной темы.

  18. Загрузка functions.php родительской темы
    Если используется дочерняя тема, загрузится functions.php родительской темы.

  19. Запуск «after_setup_theme»
    Выполнение действий после загрузки темы.

  20. Настройка текущего пользователя
    Загружается текущий пользовательский объект, в соответствии с которым будет обрабатываться запрос.

  21. Запуск «init»
    Вся важная информация загружена, теперь выполняется весь сторонний код.

  22. Запуск «widget_init»
    Регистрация виджетов.

  23. Выполнение wp()
    Вызывается функция wp(), находящаяся в wp-includes/functions.php, которая задает глобальные запросы $wp, $wp_query, $wp_the_query and then calls $wp->main.

  24. Парсинг запроса
    Теперь Вордпресс получил всю информацию для анализа запроса пользователя, проверяются Rewrite Rules, запускаются фильтры переменных запроса, запрашиваются хуки и отправляется запрос заголовка.

  25. Выполнение запроса
    Если контент не соответствует запросу, устанавливается is_404, загрузка продолжится если все в порядке. Далее запускается WP_Query->get_posts(), вызывается DO_ACTION_REF_ARRAY ‘pre_get_posts’ с объектом WP_Query, запускается apply_filters для очистки запроса и выполнения окончательных проверок. После этого из базы данных извлекается запрашиваемая запись и к ней применяются фильтры posts_results и the_posts. После всех этих действий Вордпресс возвращает запись.

  26. Запуск «template_redirect»
    Этот хук выполняется перед выбором загрузки шаблона.

  27. Загрузка шаблона фида
    Загружается шаблон для RSS-ленты.

  28. Загрузка шаблона
    Поиск и загрузка шаблона запрашиваемой страницы.

  29. Запуск «shutdown»
    Последнее действие Вордпресс перед завершением выполнения PHP-кода.

Весь код исполнен, страница сгенерирована и отдана в виде HTML, CSS и JavaScript, из которых браузер сформирует привычную веб-страницу. Весь процесс обычно занимает долю секунды.