Wordpress Code Flow

Мне было интересно как работает WordPress. Какова последовательность исполнения кода WordPress. Сначала я копался в коде, потом наткнулся на такую статью в кодексе. Статья ниже вольный перевод, плюс некий личный опыт.

index.php

Сначала запрос получает этот файл. В нем всего две строчки:
— первая определяет переменную WP_USE_THEMES, которая отвечает за использование темы.
— затем передается управление wp-blog-header.php

wp-blog-header.php

В этом файле распарсивается и распознается запрос. Выбираются записи из базы по необходимости и формируется необходимая страница к выводу на основе активной темы. В том числе в этом файле подключается файл с настройками wordpress wp-config.php .

wp-config.php

Это файл с настройками wordpress. В нем задаются необходимые переменные при установке WordPress на хостинг ( база, пароли и т.п. ). А кроме того задаются ряд других параметров, таких как локализация блога, кеширование и прочее. А затем в конце подключается файл wp-settings.php .

wp-settings.php

В этом файле подключается множество файлов для работы WordPress, среди них:

wp-includes/functions.php
wp-includes/default-filters.php
wp-includes/wp-l10n.php
wp-includes/functions-formatting.php
wp-includes/functions-post.php
wp-includes/classes.php
wp-includes/template-functions-general.php
wp-includes/template-functions-links.php
wp-includes/template-functions-author.php
wp-includes/template-functions-post.php
wp-includes/template-functions-category.php
wp-includes/comment-functions.php
wp-includes/feed-functions.php
wp-includes/links.php
wp-includes/kses.php
wp-includes/version.php

Также в нем определяются глобальные переменные и синглтоны.

Кроме того функционал этого файла в подключении активных плагинов WordPress. Сразу после загрузки плагинов загружается массив переопределяемых функций WordPress ( определенных в wp-includes\pluggable.php ).

Возвращаемся к wp-blog-header.php

После того как подключены wp-config.php и wp-settings.php продолжается исполнение wp-blog-header.php , где распарсивается запрос, обрабатываются http заголовки ( для отработки ошибки 404, для сбора пингбэков, для обслуживания RSS потока ).

После того как все переменные собраны, обработаны – запрашиваются нужные записи из базы и формируется страница выдаваемая пользователю. Всё это происходит в файле template-loader.php . Фактически через этот файл управление передается шаблону WordPress. В шаблоне можно выделить несколько важных блоков это определение шапки, футера, сайдбаров и вывод постов ( The Loop ).

На этом пожалуй и всё. Несколько сумбурно, но для меня это значительно расширило понимание устройства WordPress, а это полезно в работе.