Категория Архивы: Разбираем открытый код Wordpress

Разбираем открытый код Wordpress

Ядро WordPress.Файл «load.php». Часть 8

Завершаем разбор файла «load.php». Осталось рассмотреть следующие функции: wp_installing() is_ssl() wp_convert_hr_to_bytes() wp_is_ini_value_changeable() wp_doing_ajax() wp_using_themes() wp_doing_cron() is_wp_error() wp_is_file_mod_allowed() wp_start_scraping_edited_file_errors() wp_finalize_scraping_edited_file_errors() wp_is_json_request() wp_is_jsonp_request() wp_is_xml_request() wp_installing() Функция «wp_installing()» — выясняет, работает ли WordPress в режиме установки или нет. При необходимости, с её помощью можно включить или выключить режим установки WordPress. Включение или выключение этого режима возможно только в том случае, когда… Подробнее »

Ядро WordPress.Файл «load.php». Часть 7

В данной публикации я рассмотрю такие функции «load.php» как: is_user_admin (), is_multisite (), get_current_blog_id() get_current_network_id() wp_load_translations_early() is_user_admin() Функция «is_user_admin()» — определяет, является ли текущий запрос страницей, которая показывается только администратору. Принцип работы аналогичен предыдущим трём функциям. is_multisite () Функция «is_multisite()«- проверяет включен ли режим «мультисайт«. Сначала ведётся поиск именной константы «MULTISITE». Если она была определена, тогда возвращается её… Подробнее »

Ядро WordPress.Файл «load.php». Часть 6

Следующая группа рассматриваемых функций файла «load.php» перечислены ниже: wp_set_internal_encoding() wp_magic_quotes() shutdown_action_hook() wp_clone() is_admin() is_blog_admin() is_network_admin() is_user_admin() wp_set_internal_encoding() Функция «wp_set_internal_encoding()» — устанавливает внутреннюю кодировку скрипта. Сначала проверяется существование функции «mb_internal_encoding()«. Эта стандартная функция языка PHP. Если эта функция имеется, тогда с помощью «get_option()» получаем значение опции «blog_charset». Результат сохраняем в переменной «$charset». Если эта переменная пуста или не получилось… Подробнее »

Ядро WordPress.Файл «load.php». Часть 5

Продолжаем разбор файла «load.php». В данной статье я рассмотрю такие функции как: wp_get_active_and_valid_themes() wp_skip_paused_themes() is_protected_endpoint() wp_is_recovery_mode() is_protected_ajax_action() wp_get_active_and_valid_themes() Функция «wp_get_active_and_valid_themes()» — данная функция возвращает список активных тем сайта. Сначала функция получает доступ к глобальной переменной «$pagenow». После объявляется пустой массив «$themes». Если система находится в режиме установки и файл текущей страницы «$pagenow» не соответствует «wp-activate.php», тогда возвращается пустой… Подробнее »

Ядро WordPress. Файл «load.php». Часть 4

Следующая группа рассматриваемых функций файла «load.php» имеет отношение к работе со списком активных плагинов. wp_not_installed() Функция «wp_not_installed()» — проверяет правильность установки CMS WordPress. При помощи функции «is_multisite()» выясняем располагается ли сайт на поддомене(домен третьего, четвёртого уровня и так далее). Если он находится именно там, тогда используя функцию «is_blog_installed()» проверяем правильность установки CMS. Если отсутствуют определённые таблицы, тогда считаем,… Подробнее »

Файл «load.php». Часть 3

Продолжаем разбирать ядро WordPress. В данной статье будет рассмотрена следующая группа функций, описанная в файле «load.php». wp_set_lang_dir() Функция «wp_set_lang_dir()» — устанавливает путь к папке с языковыми файлами. Это происходит только в том случае, когда не задана именная константа «WP_LANG_DIR». Она определяется в файле «default-constants.php». Если эта константа не определена, тогда проверяется существование папки «languages» в директории «wp-content». Путь… Подробнее »

4.8 Ядро WordPress. Функция wp_debug_mode()

Данные функции располагаются в файле «load.php». Полный путь к нему таков: корневая папка сайта/wp-includes/load.php Описание wp_debug_mode() Функция «wp_debug_mode()» — проверяет режим работы CMS WordPress. Если система работает в режиме разработки, тогда определённым образом настраивается документирование и вывод ошибок, возникших при работе скрипта. Сначала запускается функция «apply_filters()«. Она проверяет следует ли разрешить режим отладки или нет. Если результат её… Подробнее »

4.7 Ядро WordPress. Функции timer_start() и timer_stop()

Данные функции располагаются в файле «load.php». Полный путь к нему таков: корневая папка сайта/wp-includes/load.php Описание timer_start() Функция «timer_start()» — сохраняет в глобальной переменной «$timestart» время начала работы (в секундах) WordPress. Это время можно получить, используя функцию «microtime()«. Описание timer_stop() Функция «timer_stop()» — фиксирует время окончания работы скрипта. Оно сохраняется в глобальной переменной «$timeend». Полное время работы скрипта представляет… Подробнее »

4.6 Ядро WordPress. Функции wp_favicon_request() и wp_maintenance()

Данные функции располагаются в файле «load.php». Полный путь к нему таков: корневая папка сайта/wp-includes/load.php Описание wp_favicon_request() Функция «wp_favicon_request()» — данная функция отображает «favicon» сайта. Это происходит в том случае, когда в строке запроса встречается подстрока «/favicon.ico». При этом в дальнейшей работе скрипта нет необходимости. В версиях WordPress 5.4 и выше использование этой функции запрещено. Описание wp_maintenance() Функция «wp_maintenance()»… Подробнее »

4.5 Ядро WordPress. Функция wp_check_php_mysql_versions()

Данная функция располагается в файле «load.php». Полный путь к нему таков: корневая папка сайта/wp-includes/load.php Описание wp_check_php_mysql_versions Функция «wp_check_php_mysql_versions()» — проверяет текущие версии PHP — интерпретатора и базы данных. Он использует две глобальные переменные «$required_php_version» и «$wp_version». Первая переменная хранит версию PHP — интерпретатора, требуемую для работы CMS WordPress. Вторая переменная хранит рабочую версию WordPress. Проверяем текущую версию PHP… Подробнее »

4.4 Файл «load.php». Часть 2

В стандартной редакции WordPress файл ядра «load.php» загружается первым. Так как количество функций в этом файле очень большое, то каждая их них описана отдельно. Функция wp_check_php_mysql_versions() Функции wp_favicon_request() и wp_maintenance() Функции timer_start() и timer_stop() Функция wp_debug_mode()

4.3 Ядро WordPress. Функция wp_fix_server_vars()

Функция «wp_fix_server_vars()» располагается в файле «load.php». Полный путь к нему таков: корневая папка сайта/wp-includes/load.php Описание wp_fix_server_vars() Функция «wp_fix_server_vars()» — данная функция анализирует глобальную переменную «$_SERVER» и, при необходимости, исправляет значения некоторых элементов этого массива. Первым делом объявляется глобальная переменная «$PHP_SELF». В ней хранится имя файла текущего выполняемого скрипта, относительно корня документа. То есть, когда серверу отправляется подобный запрос… Подробнее »

4.2 Ядро WordPress. Функция wp_unregister_GLOBALS()

Данная функция располагается в файле «load.php». Полный путь к нему таков: корневая папка сайта/wp-includes/load.php Описание wp_unregister_GLOBALS() Функция «wp_unregister_GLOBALS()» — эта функция удаляет из суперглобального массива «$GLOBALS» лишние суперглобальные массивы. Прежде чем перейти к разбору этой функции, хочу сказать, что массив «$GLOBALS» способен хранить ссылки на на все переменные, определенные в данный момент в глобальной области видимости скрипта. Имена… Подробнее »

4.1 Ядро WordPress. Функция wp_get_server_protocol()

Данная функция располагается в файле «load.php». Полный путь к нему таков: корневая папка сайта/wp-includes/load.php Описание wp_get_server_protocol() Функция «wp_get_server_protocol()» — выясняет какой протокол соединения с сервером используется. Для этого данная функция обращается к элементу глобального массива «$_SERVER». В качестве ключа используется выражение «SERVER_PROTOCOL». В этом элементе хранится информация об имени и версии протокола. Результат сохраняется в переменной «$protocol». После… Подробнее »

4.0 Файл «load.php». Часть 1

Теперь мы приступаем к изучению ядра WordPress. Начнём с файла «load.php». В стандартной редакции WordPress именно этот файл ядра загружается первым. Так как количество функций в этом файле очень большое, то каждая их них описана отдельно. Функция wp_get_server_protocol() Функция wp_unregister_GLOBALS() Функция wp_fix_server_vars() Функция wp_check_php_mysql_versions() Функции wp_favicon_request() и wp_maintenance() Функции timer_start() и timer_stop() Функция wp_debug_mode()

Ядро WordPress. Этапы его разбора и изменения.

Подготовительный этап окончен. Были написаны три класса. Это класс «GlobalVariables» , класс «AutoLoader» и класс «Exceptions». Первый класс необходим для хранения информации глобальных переменных. Второй класс используется для подключения всех необходимых файлов ядра. При этом возможно подключение как пакета файлов, так и одиночных файлов. Третий класс перехватывает сообщения о возникающих ошибках, обрабатывает их и выводит на экран монитора.… Подробнее »

3.9 Класс «AutoLoader». Подключение классов и функций.

Теперь мы добрались до методов, которые отвечают за автоматическое подключение классов и методов. Они работают опираясь на данные имеющейся карты классов. Метод findFile() и Метод loadClass() Методы loadFile(), loadGroupFiles() и loadAllFiles() Метод __invoke() Метод findFile() и Метод loadClass() Метод «findFile()» — этот метод возвращает путь к файлу, в котором расположен класс «$class». Метод «loadClass()» — данный метод подключает… Подробнее »

3.8 Класс «AutoLoader». Манипуляции с картой классов

В принципе все манипуляции с картой классов сводятся к трём методам. Они описаны ниже. Их не так много потому, что нет особой надобности во внесении в каких-то крупных изменений в карту классов. Карта ведь создаётся автоматически, а потому она составлена именно так, как нам это необходимо. Метод writeToFile() Метод addClassMapFromFile() и addClassMapFromDir() Метод writeToFile() Этот метод манипуляции записывает… Подробнее »

3.7 Класс «Autoloader». Формирование полной карты классов. Метод generateClassMap()

В данной статье я подробно рассмотрю ключевой метод создания карты классов «generateClassMap()». Метод generateClassMap() Это метод самостоятельно создаёт карту классов. Сначала создаётся пустой массив «$newClassMap». Он будет заполняться необходимыми данными. Далее запускаем метод «discoverFiles()». После того, как данный метод заполнил массив «files«, можно приступить к его перебору с помощью конструкции «foreach». В процессе перебора создаются два массива «$classMatch»… Подробнее »

3.5 Класс «Autoloader». Работа с папками

В данной статье мы познакомимся с методами класса «Autoloader«, которые будут сканировать все вложенные папки на наличие файлов «.php», а также выполнять некоторые иные манипуляции. Вся работа с папками ляжет на следующие четыре метода: Метод getMapDirectory() Метод hasMapDirectory() Метод removeMapDirectory() Метод addMapDirectory() Метод getMapDirectory() Этот метод возвращает содержимое массива «classMapFrom«. В нём хранится список папок (директорий), которые потом… Подробнее »