WordPress изнутри — принцип работы движка

1. Обращение к wp-config.php для загрузки конфигурации
Процесс загрузки начинается с запуска wp-config.php (конфигурационного файла с глобальными переменными и подключением к БД).

2. Загрузка дефолтных констант
Применяются предустановленные значения дефолтных констант: директория установки, максимальный размер файлов и т.д.

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

4. Подгружается wp-content/db.php (если он существует)
Файл необходимый для оптимизации работы BD. Он может повысить производительность сайта за счет уменьшения числа запросов к базе данных.

5. Подключение к серверу баз данных MySQL
CMS произведет выбор БД на сервере MySQL, либо вы увидите ошибку: «Error establishing database connection».

6. Запуск object-cache.php, либо wp-includes/cache.php
WordPress будет искать файл object-cache.php и при отсутствии такового, запустит по умолчанию wp-includes/cache.php.

7. Загрузка файла wp-content/sunrise.php
При наличии сети сайтов, запустится режим Multisite (после обнаружения вордпрессом sunrise.php в папке wp-contetnt).

8. Загрузка локализации
После обращения к библиотеке /l10n.php из wp-includes, вордпресс выполнит локализацию веб-сайта.

9. Запуск мультисайтовых плагинов
В случае мультисайтовой сети, WP запустит Multisite-плагины.

10. Событие «muplugins_loaded»
Срабатывает только для активных сетевых мультисайт-плагинов.

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

12. Загрузка pluggable.php
Активированные вордпресс плагины могут переопределять функции pluggable.php, но если это не так, то платформа обратится к файлу pluggable.php.

13. Срабатывает событие plugins_loaded
Разработчики могут вставлять «plugins_loaded» в код различных хуков и запускать собственные функции после загрузки всех активированных плагинов.

14. Применение правил Rewrite для ЧПУ
Выполняются Rewrite Rules – правила переопределения ссылок в SEO-дружественные и понятные человеку URL (ЧПУ).

15. Инициализируются объекты $wp_query, $wp_rewrite, $wp
На этом этапе WP задействует:

$wp_query: Глобальная переменная класса WP_Query сообщает, что контент запрошен в типичном для WP-движка формате
$wp_rewrite: Глобальная переменная класса WP_Rewrite. Содержит функции и правила Rewrite Rules, подсказывающие вордпрессу, какой URL соответствует запрашиваемому контенту
$wp: Глобальная переменная класса WP. Ее функции автоматически разбирают пользовательские запросы и загружают главную очередь (main query)
16. Запускается функция «setup_theme»
Загружая тему оформления, CMS выполняет предварительные действия.

17. Запуск functions.php дочерней темы
Файл functions.php работает как плагин и его назначение – придавать WP-теме отличительные особенности. Файл запустится, только если активна дочерняя тема, в противном случае загрузится functions.php активной темы.

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

19. Выполненяется «after_setup_theme»
Выполнение функции последует сразу за загрузкой основного шаблона (темы) и ее файла functions.php.

20. Загрузка объекта текущего пользователя User Object
Вордпресс обрабатывает запросы согласно роли и привилегий текущего пользователя.

21. Выполненяется функция «init»
К этому моменту WordPress уже запустил критически важные для работы механизмы. Теперь стартует функция «init». Она дает разработчикам возможность использовать собственный код, который выполняется сразу после того, как движом выполнены все предшествующие шаги.

22. Выполненяется функция «widget_init»
Разработчикам widget_init позволяет регистрировать виджеты и выполнять нужный для их функционирования код.

23. Выполнение wp()
Из файла wp-includes/functions.php вызывается функция wp(). Задаются переменные $wp, $wp_query, $wp_the_query и сразу следует вызов $wp->main.

24. Парсинг запроса
Сейчас у вордпресса есть вся информация, необходимая для парсинга запроса. Первым делом проверяются соответствуют ли rewrite-правила запросам пользователей. Далее следует фильтрация переменных запроса, запрос экшен-хуков и запрос на загрузку шапки (хедера) веб-ресурса.

25. Выполнение запроса
Когда вордпресс не находит соответствующий пользовательскому запросу контент, условный тег is_404 сгенерит страницу ошибки 404. Если контент найден, то продолжится запуск других запросов:

WP_Query->get_posts()
Функции DO_ACTION_REF_ARRAY ‘pre_get_posts’ для объекта WP_Query
apply_filters (фильтр для очистки запросов и пр. завершающих проверок)
К извлекаемым из БД постам применяются фильтры posts_results и the_posts
Теперь, когда все запросы выполнены, вордпресс выведет загруженные записи (посты).

26. Запуск функции template_redirect
Этот хук запустится до того, как будет выбрано, какой шаблон загружать

27. Загрузка Feed-шаблона
Для RSS feed запроса, вордпресс загрузит соответствующий шаблон RSS-ленты.

28. Загрузка основной темы (шаблона)
WP приступит к поиску файла темы. Обычно, процесс загрузки шаблона начинается с файла содержащего основной цикл вордпресса.

29. Запуск функции «shutdown»
Закончив исполнять PHP-код WordPress запустит «shutdown». Работа WP-движка выполнена.

В ответ на запрос пользователя, веб-серверу хостинга будет передан сгенерированный вордпрессом HTML код со стилями CSS / скриптами JS, далее последует рендеринг страницы браузером.

Работа WordPress заняла лишь миллисекунды!

Источник: wpbeginner.com