От автора: я обожаю режим Multisite в WordPress: я использую его для управления небольшой сетью сайтов клиентов, храню все свои демо-сайты в одном месте, а также позволяю клиентам запускать свои собственные сайты в отдельной сети.
Каждый раз с выходом новой версии WordPress приятно замечать, как режим Multisite становится чуточку лучше. В WP 4.4 в режим Multisite внесено несколько приятных изменений, которые будут очень полезны в частности при настройке регистрации или работе с другими настройками. Я составил краткий обзор улучшений.
Объект WP_Network
Для более аккуратной настройки и легкого определения режима Multistate был добавлен объект WP_Network, который заполняет глобальные переменные $current_site и $current_blog.
Для обеспечения максимальной обратной совместимости команда разработчиков уже тестировала все внесенные изменения, однако если же вы все-таки вручную заполните эти переменные или будете с ними взаимодействовать каким-либо другим образом, вам потребуется протестировать код.
Функции сетевых параметров
В WordPress 4.4 появились 4 новых функции сетевых параметров:
add_network_option()
update_network_option()
get_network_option()
delete_network_option()
Они используются для хранения параметров сетей, отличных от текущей. Если вам нужны параметры текущей сети, можно воспользоваться существующими функциями:
add_site_option()
update_site_option()
get_site_option()
delete_site_option()
Обратите внимание на название четырех верхних функций с окончанием *_site_option(), они вас могут запутать. Точно такие же функции есть в WordPress и при отключенном режиме Multistate. Так что если у вас запущена сеть, то функции *_site_option() относятся ко всей сети, а не только к конкретному сайту, а функции *_network_option() не относятся к текущей сети, а наоборот относятся ко всем другим сетям кроме текущей.
Новые Экшен хуки
В версии 4.4 также было представлено несколько новых хуков. Они могут быть полезными при настройке способа конфигурации сети. Среди них:
before_signup_header: этот новый экшен запускается перед загрузкой страницы регистрации в файле wp-signup.php. Если вы хотите внести изменения в страницу регистрации, сделать редирект на другую страницу или добавить проверок перед загрузкой страницы, то можете прикрепить свои функции к этому хуку.
ms_network_not_found: запускается перед хуком ms_not_installed в случае, если глобальная переменная $current_site пуста. Раньше бы запускался хук ms_site_not_found, а данных хук позволяет работать с сетями сайтов. Т.е. если сеть не найдена, можно задать перенаправление на другую сеть, а не показывать обычный экран с ошибкой.
Хук invite_user запускается после того, как пользователь был приглашен в сеть, но до того, как ему пришло уведомление об этом. Пригодится в том случае, если нужно изменить способ работы уведомлений или для того, чтобы добавить что-то перед уведомлением (например, замечание или уведомление другому пользователю).
Улучшения интерфейса администратора сети
В панель администратора сети были внесены небольшие, но полезные улучшения:
Сетевые администраторы (или другие пользователи с правами управления сетью manage_network) могут просматривать активированные сетевые плагины во вкладке Плагины для каждого сайта. Мне уже пригодилась данная функция во время поиска потенциально конфликтных плагинов на отдельных сайтах.
Во время добавления нового сайта в сеть теперь можно выбрать его язык, который может не совпадать с языком основного сайта или других сайтов в сети. Это работает как через вкладку Сеть панели администратора, так и через страницу wp-signup.php. Функция крайне полезна для администраторов сайтов одной сети, говорящих на разных языках. В прошлом я уже использовал режим Multistate для управления многоязычными сетями, когда клиенту были нужны версии сайта на других языках. Данная функция очень полезна в таких случаях.
Для поиска пользователей в сети теперь можно использовать знак *, чтобы в результат попали менее релевантные записи. Будет полезно в том случае, если в вашей сети много пользователей, а вам нужно найти всех пользователей с одинаковым суффиксом в адресе электронной почты.
Теперь можно выбрать язык для каждого сайта в сети
Заключение
Среди вышеперечисленных улучшений небольшие изменения для пользователей, а также пара функций и хуков, которые пригодятся разработчикам при работе в режиме Multistate. Если вы уже настроили под себя процесс регистрации, к примеру, вы найдете полезные хуки.
Приятно видеть, что с новой версией WordPress в режиме Multistate появились небольшие изменения – вот бы так было всегда!
Автор: Rachel McCollin
Источник: //code.tutsplus.com/
Редакция: Команда webformyself.