Задумывались ли вы, как WordPress на самом деле работает изнутри? Для большинства пользователей это кажется простым, потому что вы набираете URL, и страница загружается за несколько секунд, но изнутри происходит много всего. В этом руководстве мы расскажем о том, как WordPress действительно работает за кулисами, а также создали легкую для понимания инфографику.
^
WordPress – это программное обеспечение с открытым исходным кодом, которое означает, что любой может изучить его код и написать свои собственные приложения (плагины) и шаблоны (темы) для него.
Изучение того, как работает WordPress и что происходит за кулисами, поможет вам понять, что вы можете с ним сделать. Вы можете узнать об улучшении производительности WordPress и написать лучший код для своих собственных проектов.
Это руководство проведет вас через весь процесс шаг за шагом. Мы начнем с того момента, когда пользователь запросит страницу, и закончим, когда эта страница будет полностью загружена.
Готов? Давайте начнем.
^
Вы также можете следовать нашему письменному руководству ниже для более подробной информации.
Wp-config.php – это файл конфигурации WordPress. Он устанавливает глобальные переменные для сайта WordPress и содержит информацию о вашей базе данных WordPress. Это первый файл, который WordPress загружает по понятным причинам. Узнайте больше о файле wp-config.php и о том, как его редактировать.
После загрузки файла wp-config.php WordPress перейдет к настройке констант по умолчанию. Сюда входит такая информация, как местоположение загрузки WordPress по умолчанию, максимальные размеры файлов и другие константы по умолчанию, установленные в файле wp-config.php.
Если на вашем сайте существует файл advanced-cache.php, WordPress загрузит его следующим. Этот файл действует как файл вставки и используется несколькими популярными плагинами, в частности плагинами кеширования WordPress. Если ваш сайт использует этот файл, то вы увидите новый элемент на экране плагинов, который называется Drop-ins.
^
WordPress позволяет разработчикам создавать свои собственные слои абстракции базы данных и загружать их в файл db.php, расположенный в папке wp-content. Он обычно используется плагинами кеширования WordPress для повышения производительности базы данных. Если на вашем сайте есть этот файл, WordPress загрузит его.
WordPress теперь достаточно информации, чтобы продолжить. Он перейдет к подключению к серверу MySQL и выберет базу данных.
Если WordPress не может подключиться к базе данных, вы увидите ошибку «Ошибка при установлении соединения с базой данных», и WordPress закроется прямо здесь.
Если все работает нормально, то он перейдет к следующим шагам.
WordPress теперь будет искать файл object-cache.php. Если он не существует, WordPress перейдет к загрузке файла wp-includes / cache.php.
Если это многосайтовая сеть, то WordPress теперь будет искать файл sunrise.php, если он существует в папке wp-content.
WordPress теперь загрузит библиотеку l10n.php в папку wp-includes. Этот файл загружает систему локализации WordPress, загружает переводы, устанавливает локали и т. д. См. Наше руководство о том, как использовать WordPress на других языках.
Если это многосайтовая сеть, то WordPress теперь будет загружать многосайтовые плагины. Узнайте больше о том, как плагины работают в многосайтовой сети WordPress.
^
Действие muplugins_loaded теперь запускается WordPress. Это действие доступно только для подключаемых по сети модулей на многосайтовом WordPress.
WordPress теперь будет загружать все активные плагины на сайте. Это достигается путем просмотра записи active_plugins в таблице параметров вашей базы данных WordPress. Это позволяет WordPress игнорировать плагины, которые установлены на вашем сайте, но не активированы.
Файл pluggable.php содержит функции, которые могут быть переопределены плагинами WordPress. WordPress теперь увидит, определены ли функции внутри этого файла другим плагином. В противном случае он сам определит эти функции.
WordPress теперь будет запускать действие «plugins_loaded». Это позволяет разработчикам подключать свои функции для запуска после загрузки всех активных плагинов.
WordPress теперь будет загружать правила перезаписи. Эти правила переписывания помогают WordPress использовать оптимизированные для SEO URL-адреса.
В этот момент WordPress загружает следующие объекты:
$ wp_query: глобальный экземпляр, содержащий класс WP_Query. Он сообщает WordPress, какой контент запрашивается в типичном формате запросов WordPress.
$ wp_rewrite: глобальный экземпляр, содержащий ваш класс WP_Rewrite. Он содержит ваши правила и функции перезаписи, которые сообщают WordPress, какой URL использовать для отображения запрошенного контента.
$ wp: глобальный экземпляр класса WP, который содержит функции, которые будут анализировать ваш запрос и выполнять основной запрос.
WordPress теперь перейдет к выполнению действия «setup_theme». Это действие выполняется до загрузки темы WordPress.
Файл functions.php действует как плагин и используется в темах WordPress для добавления функций, специфичных для темы, на ваш сайт. Если вы используете дочернюю тему, WordPress теперь загрузит файл functions.php вашей дочерней темы.
В противном случае он продолжит работу и загрузит файл functions.php вашей текущей активной темы.
Если вы используете дочернюю тему, WordPress теперь загрузит файл functions.php вашей родительской темы.
Это действие запускается после того, как WordPress настроил тему и загрузил функции темы. Это первое действие, доступное темам.
В этот момент WordPress загружает текущий пользовательский объект. Это позволяет WordPress управлять запросом в соответствии с ролью и возможностями пользователя.
WordPress загрузил всю необходимую информацию. Теперь он запускает действие «init».
Это действие позволяет разработчикам добавлять код, который необходимо выполнить после того, как WordPress загрузит всю ранее упомянутую информацию.
Действие widget_init позволяет разработчикам регистрировать виджеты и запускать код, необходимый для запуска в это время.
WordPress теперь вызывает функцию wp (), которая находится в файле wp-includes / functions.php. Он устанавливает глобальные запросы WordPress $ wp, $ wp_query, $ wp_the_query и затем вызывает $ wp-> main.
Теперь WordPress имеет всю информацию, необходимую для анализа запроса пользователя. Он начинается с проверки правил перезаписи в соответствии с запросом пользователя.
А затем запускает фильтры переменных запроса, перехватывает действие запроса и отправляет запрос заголовка.
Если контент не соответствует запросу, WordPress установит переменную is_404.
В противном случае WordPress продолжит загружать переменные запроса.
Затем он запустит WP_Query-> get_posts ().
Затем он запускает действие DO_ACTION_REF_ARRAY «pre_get_posts» с объектом WP_Query.
WordPress теперь будет запускать apply_filters, чтобы очистить запрос и выполнить некоторые последние проверки.
Теперь он извлекает сообщения из базы данных и применяет фильтры posts_results и the_posts.
Часть запроса заканчивается тем, что WordPress возвращает сообщения.
WordPress теперь будет запускать действие template_redirect. Этот хук запускается непосредственно перед тем, как WordPress определяет, какую страницу шаблона загрузить.
Если запрошенный контент представляет собой RSS-канал, WordPress загружает шаблон канала.
WordPress теперь будет искать файл шаблона на основе иерархии шаблонов WordPress. Затем он загружает шаблон, который обычно содержит цикл WordPress.
Перед завершением всего выполнения PHP WordPress запускает последнее действие, называемое выключением.
WordPress перестает работать здесь. Он запустил код и сгенерировал запрашиваемую пользователем веб-страницу.
Теперь ваш сервер веб-хостинга отвечает на запросы пользователей, отправляя им веб-страницу, созданную WordPress. Эта страница содержит код HTML, CSS и Javascript, который сообщает браузеру пользователя, как отображать его на экране.
Удивительно, не правда ли? Все это происходит за миллисекунды. Если вы используете один из этих лучших хостинговых сервисов WordPress, то в идеале ваша страница загрузится через пару секунд.
Мы надеемся, что эта статья помогла вам узнать, как WordPress работает изнутри. Вы также можете ознакомиться с нашим пошаговым руководством о том, как повысить скорость и производительность WordPress для начинающих.
Если вам понравилась эта статья, пожалуйста, подпишитесь на наш канал YouTube для видеоуроков WordPress. Вы также можете найти нас в Twitter и Facebook.
Поскольку до крайнего срока соблюдения GDPR ЕС осталось всего 178 дней , многие владельцы сайтов…
Команда Gutenberg создаст станцию тестирования удобства использования в WordCamp US, где посетители смогут принять участие…
Сегодня компания 10up опубликовала предварительную версию своего плагина Distributor , нового решения для синдикации контента…
На этой неделе был выпущен Gutenberg 1.8 с несколькими заметными улучшениями, которые предоставят разработчикам плагинов…
На этой неделе был выпущен Gutenberg 15.5 с новыми функциями и улучшениями возможностей полнофункционального редактирования…
DesktopServer выпустил версию 3.8.4 своего программного обеспечения для локальной разработки. Эта версия включает в себя…