Перейти к содержанию

4. Разбираем открытый код WordPress. Запуск установки CMS

Last updated on 09.05.2021

открытый-код-WordPress

В прошлой статье мы разобрали файл «.htaccess». После того как сервер прошёлся по этому файлу и выполнил все инструкции, он передаёт управление файлу «index.php».

folders-index

Если мы откроем этот файл, то увидим следующее:

index-php

В этом файле определяется именная константа «WP_USE_THEMES». Определение происходит с помощью функции «define()». Эта константа разрешает загрузку темы WordPress. Затем подключается файл «wp-blog-header.php». Подключение происходит при помощи функции «require()».

Константа «__FILE__» — возвращает полнвй путь к файлу «index.php». Этот путь используется функцией «dirname()». Она возвращает имя родительского каталога, то есть полный путь к папке, в которой находится «index.php».

Переходим к файлу, который только что подключили.

folders-blog-header

С помощью функции «isset()» определяется существование переменной «wp_did_header». Если её не существует, значит система ещё не загружалась. Поэтому создаём такую переменную. Далее подключаем файл «wp-load.php». После подключения этого файла запускается функция wp(). После подключается файл «template-loader.php». В данный момент нас интересует файл «wp-load.php».

wp-load-1

Он располагается, как и файл «index.php» в корне сайта. В этом файле, первым делом, определяется наличие константы «ABSPATH». При необходимости она создается. Эта константа теперь будет определять путь к корню сайта. Далее с помощью функции «error_reporting()» задается список ошибок PHP, которые попадут в отчет. С более подробной информацией об ошибках можно ознакомиться здесь.

wp-load-2

Теперь необходимо подключить файл конфигураций сайта «wp-config.php». С помощью функции «file_exists()» проверяем существование этого файла. Если указанный файл существует, то подключаем его. До момента установки WordPress этот файл отсутствует в корне сайта. Вместо него есть «wp-config-sample.php». В процессе установки создаётся копия этого файла, в которую вносятся необходимые изменения. Затем эта копия сохраняется под именем «wp-config». Если файл не существует, то запускается выполнение следующего условия цикла «elseif (…){…}».

Таким образом файл «wp-config.php» является индикатором установки системы WordPress.

Бывают ситуации, когда файлы недоступны из-за ограничений, налагаемых безопасным режимом. В таком случае функция «file_exists()» вернет FALSE . Однако, эти файлы все еще могут быть подключены, если они располагаются в каталоге safe_mode_include_dir. Именно поэтому перед данной функцией используется оператор управления ошибками «@». Данный оператор позволяет, в этом случае, проигнорировать значение FALSE, возвращаемое функцией «file_exists()».

Если файл «wp-config.php» всё ещё можно использовать, а файл «wp-settings.php» отсутствует либо его невозможно подключить, тогда подключаем «wp-config.php». Если файла «wp-config.php» всё же отсутствует, значит запускается процесс установки WordPress.

wp-load-3

Процесс установки начинается с определения константы «WPINC». В ней содержится путь к директории с ядром CMS. Подключается файл «load.php». Именно в нём прописаны функции:

  • wp_fix_server_vars
  • wp_check_php_mysql_versions
  • wp_load_translations_early

Далее подключается файл «functions.php». Там прописана функция «wp_guess_url». В переменной $path прописываем полный путь к файлу «setup-config.php» из папки «wp-admin». Именной этот файл отвечает за весь процесс установки CMS. Теперь необходимо запустить процесс установки. Для этого из глобального массива $_SERVER получаем фрагмент запроса, введённого в адресную строку.

Например если строка запроса представляет собой адрес «http://www.mysite.ru/test/index.php?id=1&test=wet&id_theme=512», то $_SERVER[‘REQUEST_URI’] будет содержать фрагмент «/test/index.php?id=1&test=wet&id_theme=512».

В полученном фрагменте с помощью функции «strpos()» вы ищем строку «setup-config». Если её нет, тогда с помощью функции «header()» браузеру отправляется HTTP-заголовок «Location». При этом вместо переменной $path подставляется её значение (путь к файлу «setup-config.php»). Таким образом с помощью данного заголовка происходит перенаправление браузера по новому адресу. Но это станет возможным только тогда, когда прекратиться выполнение текущего скрипта «wp-load.php». Поэтому используется конструкция «exit». Она позволяет прекратить дальнейшее выполнение скрипта.

Итак браузер перенаправлен по новому адресу. Процесс установки запущен. На этом пока остановимся. В следующей статье будет рассмотрен процесс запуска ядра системы.

Опубликовано в рубрикеРазбираем открытый код Wordpress