Последовательность загрузки WordPress: редакция wp-admin

Добро пожаловать в очередной выпуск моих экскурсий по джунглям WordPress по заводям WP.

Эта статья основана на моем предыдущем пошаговом руководстве по процессу загрузки WordPress. Если вы входите в админку, то адрес yoursite.com/wp-admin. Этот URL-адрес не выполняет перенаправление .htaccess, вы фактически загружаете index.php в папку wp-admin.

АДМИН.PHP

Первое, что он делает, это загружает wp-admin/admin.php — это файл, который загружает админку. Он устанавливает несколько констант, чтобы остальная часть системы знала, что вы находитесь в админке. Затем он загружает наш надежный wp-load.php, который загружает wp-config, который загружает wp-settings.php и загружает все приложение WordPress. (Подробнее о том, как это работает, см. в предыдущей статье).

Большая разница в том, что admin.php не запускает объект wp для заполнения запроса и не использует загрузчик шаблонов из внешнего интерфейса. Итак, давайте пройдемся по admin.php до конца этой статьи.

ЗАГОЛОВОК NOCACHE И ПРОВЕРКА ОБНОВЛЕНИЯ БАЗЫ ДАННЫХ

Теперь WordPress следит за тем, чтобы ваш браузер не загружал кешированную версию страницы администратора.

Он также проверяет, было ли выполнено обновление базы данных (или вы находитесь в процессе обновления мультисайта). Здесь вы получаете несколько крючков и фильтров для взаимодействия с процессом.

WP-АДМИН/ВКЛЮЧАЕТ/АДМИН.PHP

На данный момент обычная часть приложения WordPress уже загружена (через wp-settings.php). Администратор теперь загружает дополнительные файлы со всеми специфическими функциями и классами администратора. Это происходит в wp-admin/includes/admin.php

AUTH_REDIRECT()

После загрузки всех дополнительных функциональных файлов мы вернулись в wp-admin/wp-admin.php! auth-redirect() — это подключаемая функция, которая проверяет, вошел ли пользователь в систему. Если нет, он перенаправляется на экран входа в систему. Дополнительный совет: вы можете добавить эту функцию в свои собственные шаблоны для быстрого и защищенного типа страницы.

WP_SCHEDULED_DELETE()

Эта функция запускается через WordPress Cron и проверяет, есть ли сообщения, которые находятся в вашей корзине дольше установленного вами максимального времени. Если это так, он навсегда удаляет их.

SET_SCREEN_OPTIONS()

Эта функция сохраняет параметры, которые вы установили в раскрывающемся списке «параметры экрана» в верхней части экранов администратора. Эти параметры хранятся в таблице usermeta.

Затем WordPress загружает формат даты и времени из файла wp_options. Вы устанавливаете эти значения в своем админке (Настройки › Общие).

ОБЩИЙ.JS

Теперь WordPress ставит в очередь wp-admin/js/common.js, который отвечает за такие вещи, как отображение таблиц, проверка форм и т. д.

$РЕДАКТИРОВАНИЕ ПЕРЕМЕННОЙ

Здесь для переменной редактирования установлено значение false. Если вы находитесь в post.php или post-new.php, для него установлено значение true. Они настроены на редактирование/создание любого типа сообщений.
Я не нашел другой ссылки для ссылки на редактирование $. Я думаю, это только для проверки плагинов.

ОПРЕДЕЛЕНИЕ, КАКАЯ СТРАНИЦА ЗАГРУЖАЕТСЯ

Затем задаются несколько переменных, чтобы определить, какой экран администратора загружается.

Если выбранная страница администратора была добавлена ​​через плагин, переменная URL сохраняется в $plugin_page.

Если вы редактируете или добавляете тип сообщения (отличный от значения по умолчанию: сообщение), этот тип сообщения сохраняется в $typenow.

Переменная последнего URL, которая проверяется и сохраняется, является таксономией. Вы получаете это, если открываете обзор таксономии или редактируете его. Он сохраняется в $taxnow.

СОСТАВЛЕНИЕ МЕНЮ

Большинство страниц просто загружают wp-admin/menu.php. Два особых случая (мультисайт и пользователь, редактирующий свой профиль) загружают другой файл меню (который в конце требует wp-admin/menu.php).

wp-admin/menu.php создает большой массив меню и в конце требует wp-admin/includes/menu.php.

Этот последний файл предоставляет дополнительные фильтры, крючки и фильтры для настройки меню перед его выводом в браузер.

УВЕЛИЧИТЬ ПРЕДЕЛ ПАМЯТИ

WordPress теперь проверяет, являетесь ли вы администратором (current_user_can). Если это так, лимит памяти PHP временно увеличивается. Это может быть необходимо для некоторых сценариев администрирования. Здесь вы также получаете фильтр, который вы можете использовать в своем плагине, чтобы переопределить константу.

ADMIN_INIT

Теперь у вас есть хук admin_init. Это сравнимо с хуком инициализации (из обычной последовательности загрузки). Процесс загрузки админки завершен и доступны все дополнительные админ-функции.

НАСТРОЙКА $PAGE_HOOK И $HOOK_SUFFIX

Если страница, к которой мы хотим получить доступ, была добавлена ​​через плагин, WordPress создаст для нее пользовательский хук: $page_hook.

Если вам нужен быстрый и (очень) грязный способ увидеть ваш текущий $page_hook, вы можете добавить этот фрагмент в свой functions.php.

Переменная $hook_suffix используется для создания дополнительных хуков в файлах администратора. Например, в admin-footer.php и admin-header.php

SET_CURRENT_SCREEN

WordPress теперь будет хранить объект WP_Screen в $current_screen. Свойства этого объекта вычисляются (в методе get WP_Screen) на основе переменной $hook_suffix (см. выше).

Объект в $current_screen также позволит вам взаимодействовать с такими вещами, как вкладки справки.

СТРАНИЦА ПЛАГИНА

Если страница администрирования, которую вы пытаетесь просмотреть, является страницей, добавленной подключаемым модулем, теперь вы получаете действие load-$page_hook и действие $page_hook, которое вы можете вызвать. В комментариях вы также увидите, как рассчитывается $page_hook.

ИМПОРТ

Другой особый случай — импорт. WordPress проверяет, звоните ли вы правильному импортеру (среди прочего).

ПРИСОЕДИНЯЙТЕСЬ К $PAGENOW

Одна из последних ловушек в этом файле начальной загрузки: load-$pagenow. Как вы видите из операторов if-else, это сработает только в том случае, если это не страница, созданная плагином (у которых есть $page_hook).

КРЮЧОК ДЛЯ ЗАПРОСА ДЕЙСТВИЯ

Если ваша страница предоставляет значение действия в $_REQUEST, вы можете подключиться к нему с помощью add_action(‘admin_action_youraction’, ‘yourfunction’);

ПОСЛЕ ЗАГРУЗКИ ADMIN.PHP

После загрузки wp-admin/admin.php вы должны просмотреть запрошенный файл администратора. Там вы увидите, как это работает (если только это не страница плагина, которая, как мы видели, обрабатывается в admin.php).

Панель инструментов (wp-admin/index.php), например, загружает виджеты панели и настраивает вкладки справки (через WP_Screen).

Я планирую просмотреть выбранный диапазон страниц администратора в будущих статьях.

Что общего у большинства из них, так это то, что они вызывают wp-admin/admin-header.php и wp-admin/admin-footer.php.

Эти два файла, вероятно, станут темой моей следующей статьи.