Вопрос или проблема
Я сделал необходимые исследования и не могу найти ЭЛЕГАНТНЫЙ способ сделать это.
У нас есть приложение на WordPress с довольно интенсивными требованиями к управлению сессиями, и теперь нам нужно запустить некоторый старый код перед загрузкой WordPress. Я планирую инициировать этот процесс в первой строке файла WP index.php.
Однако, в зависимости от результатов этого старого кода, нам может понадобиться передать несколько ключевых/значений данных из этого процесса на уровень плагина в WP. Какой был бы хороший способ подойти к этому? Спасибо!
ОБНОВЛЕНИЕ (2017-01-19):
Я просто решил использовать локальный Redis для хранения любых данных ключ/значение, если запрос должен продолжаться и загружать WP.
Если производительность не является огромным фактором, или вам не нужно изменять глобальные переменные сессий PHP, то вам не нужно запускать что-либо до WordPress. Просто напишите плагин, который выполнит необходимые проверки на хуке init
и вызовет die()
, если понадобится. Таким образом, вы также можете хранить данные там, где это удобно для вас.
Редактирование любого файла ядра WordPress явно не рекомендуется, так как это эквивалентно форку WordPress со всеми вытекающими из этого обязанностями. Единственный файл, который вы можете редактировать, — это wp-config.php
, но это следует делать только в случае, если подход с плагином не сработает.
https://codex.wordpress.org/Plugin_API/Action_Reference
Посмотрите на этот список хуков и вызывайте вашу функцию с использованием хука, который, по вашему мнению, подходит вашим нуждам.
Ответ или решение
Конечно, для решения вашей задачи по запуску кода до загрузки WordPress и обработки данных может быть несколько подходов. Прежде всего, давайте рассмотрим основные аспекты задачи и возможные пути решения, учитывая актуальные детали проблемы.
Анализ задачи
Вы хотите интегрировать старый код и обработку интенсивных сессий до загрузки WordPress, а также передавать ключевые данные из этого процесса на уровень плагинов WordPress. Основным решением, которое вы рассматриваете, является редактирование index.php
. Однако, это не рекомендуется, так как может нарушить функциональность системы и усложнит процесс обновлений.
Предложенные решения
1. Использование плагинов WordPress
Оптимальным решением будет создание пользовательского плагина. Это позволит вам не только интегрировать необходимую бизнес-логику, но и обеспечить полноту работы системы без риска нарушения её целостности при будущих обновлениях. Через использование хуков в WordPress вы можете выполнить необходимую логику.
-
Хук
init
: Этот хук запускается после инициализации ядра WordPress. Использование хуков позволит раcширять функционал WordPress без изменения кода ядра. Например, вам нужно проверить сессии и принять решение о дальнейшей загрузке. -
Обработка данных: Вы можете временно хранить ключевые значения, используя инструменты, такие как транзиентные API или в кеше Redis, как вы уже упомянули. Это позволит хранить данные и использовать их в будущем без прямого вмешательства в процессы WordPress.
2. Модернизация wp-config.php
(если крайне необходимо)
Если бизнес-логика требует выполнения определенных процедур до загрузки WordPress, и это невозможно реализовать с помощью плагина, рассмотрите возможность изменения wp-config.php
. Однако, это должно быть самым последним решением.
- В
wp-config.php
можно добавить пользовательские определения и включение скриптов, которые могут запускаться сразу при обращении к серверу.
Заключение
Важно подчеркнуть, что эффективность и надежность системы критично зависят от соблюдения архитектурных стандартов и лучшего подхода к интеграции кастомизированных решений. Создание пользовательского плагина — это наиболее эффективный и безопасный путь для реализации вашей функциональности в WordPress. Редактирование файлов ядра стоит избегать из-за потенциальных проблем с совместимостью.
Если вы будете следовать этими рекомендациями, то получите гибкость в развитии системы и её последующей поддержке, а также минимизируете риски возникновения проблем при обновлениях WordPress.